Fn :: Если условие основано на среде для параметров облачной информации - PullRequest
0 голосов
/ 25 июня 2019

В зависимости от среды, я пытаюсь установить URL-адрес для переменной: она должна быть моей *, если она будет https://staging.DNHostedZoneName, если prod - просто https://DNSHostedZoneName:

Вот мое состояние:

Conditions:
  IsEnvProd: Fn::Equals [ !Ref Env, 'prod' ]
  IsEnvStage: Fn::Equals [ !Ref Env, 'stage' ]

Вот где его оценивали:

          Environment:
            - Name: NODE_ENV
              Value: !Ref NodeEnv
            - Fn::If:
              - IsEnvStage
              - Name: CORE_URL
                Value:
                  Fn::Join:
                    - ""
                    - - "https://"
                      - "staging"
                      - "."
                      - !Ref DnsHostedZoneName
              - Name: NCVCORE_URL
                Value:
                  Fn::Join:
                    - ""
                    - - "https://"

                      - !Ref DnsHostedZoneName

Я получаю следующую ошибку:

 Template format error: Conditions can only be boolean operations on parameters and other conditions

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Обычно определенные условия используются в качестве атрибута ресурса aws, и вы указываете имя условия в качестве значения. Вы можете попробовать https://krunal4amity.github.io - это онлайн-генератор шаблонов облачной информации. Отнимает много такой ужасной работы.

0 голосов
/ 26 июня 2019

Без полного шаблона трудно попытаться воссоздать проблему, но здесь ваши фрагменты подвергнуты рефакторингу с возможным удалением возможной ошибки.

Отрегулированы условные выражения для использования всех сокращений.

Conditions:
  IsEnvProd:  !Equals [!Ref "Env", "prod"]
  IsEnvStage: !Equals [!Ref "Env", "stage"]

В YAML было дополнительное пространство, которое было удалено и переформатировано.

Environment:
- Name: "NODE_ENV"
  Value: !Ref "NodeEnv"
- !If
  - "IsEnvStage"
  - Name: "CORE_URL"
    Value: !Sub "https://staging.${DnsHostedZoneName}"
  - Name: "NCVCORE_URL"
    Value: !Sub "https://${DnsHostedZoneName}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...