Рубрики
Uncategorized

Установки и условия облачной формы

Использование сопоставлений и условий облачной информации для упрощения ваших шаблонов. Tagged with AWS, DevOps.

Я пытался узнать больше о CloudFormation, чтобы облегчить настройку инфраструктуры, которой я управляю. Два забавных функциональности, которые я использовал все больше и больше, — это отображения и условия. Оба они более полезны, когда вы ставите их в сочетании с параметрами, которые вы даете шаблону при создании. Главным образом, я пытался сократить количество параметров, которые требуется шаблон, и вместо этого использовать больше отображений. Условия помогают, когда вы пытаетесь решить, нужно ли вам развернуть что -то другое в зависимости от параметра, который передается в такой же среде. Я получил почти все шаблоны, которые я часто использую для использования только одного параметра, среды. Узнание о Выходы и Fn:: importValue Больше помог мне, пока я также пытался упростить шаблоны (я напишу конкретный пост об этом позже). На данный момент я сосредоточусь на отображениях и условиях, и вот пример того, как я бы настроил шаблон для их использования.

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  Environment:
    Type: String
    AllowedValues:
      - dev
      - preprod
      - prod

Mappings:
  Domain:
    dev:
      ec2Name: 'unicorn'
      allocatedMemory: 1024
    preprod:
      ec2Name: 'nessie'
      allocatedMemory: 1024
    prod:
      ec2Name: 'yeti'
      allocatedMemory: 8192

Conditions:
  isProduction: !Equals [!Ref Environment, prod]

В этом примере отображения стоят больше, чем условия, на мой взгляд. Вы можете иметь всевозможные «переменные», определяемые на основе среды, в которой вы находитесь. Если вы замечаете себя введите один и тот же параметр для нескольких различных стеков, отображения могут помочь вам обрезать этот параметр. То, как вы бы назвали отображение через FindInmap внутренняя функция. ! FindInmap [домен,! Среда Ref, EC2Name] (Я использую yaml ) Первым элементом этого массива является ссылка на карту, на которую вы смотрите, второй элемент — это объект первого уровня, на котором вы смотрите, а третий элемент — ключ, соответствующий значению, которое вы ищете. Ссылаясь на данный параметр среды, мы можем условно устанавливать и использовать разные «переменные».

Условия полезны при попытке решить, какие ресурсы вы хотите развернуть. Например, если вы хотите развернуть ELB в производстве, но не в своих средах Preprod или Dev, вы можете просто добавить условие в свой ресурс ELB, чтобы построить только производство.

Resources:
  Type: AWS::ElasticLoadBalancing::LoadBalancer
  Condition: isProduction
  Properties:
    .
    .
    .

Это означает, что ресурс будет строить только если Среда дается как продлевать . Погружение к этим двум простым областям облачной информации может открыть тонну классных возможностей, чтобы упростить ваши шаблоны. Конечно, есть и хорошая документация AWS о обоих отображения и Условия Анкет

Оригинал: «https://dev.to/thomasstep/cloudformation-mappings-and-conditions-1133»