Введите условие для пользовательского ресурса в CloudFormation - PullRequest
0 голосов
/ 13 февраля 2020

Другой инженер представил параметр даты развертывания в нашем пользовательском ресурсе AMIFInder в стеке prod, что означает, что мы больше не можем обновлять стек dev без попытки воссоздания экземпляра EC2.

Можно ли ввести условие исключительно на основе параметра DeployDate, чтобы я мог использовать один шаблон для обоих стеков?

FindAmiResource:
    Type: 'Custom::FindAmiFunction'
    Properties:
      ServiceToken:
        Fn::ImportValue:
          !Sub 
          - cfn:find-ami:${AWSAccount}:arn
          - {AWSAccount: !FindInMap [AccountIDMap, Accounts, !Ref "AWS::AccountId"]}
      AmiName: 'Corp_w2016_Std-*'
      AmiOwner: '9999999999999'
      DeployDate: !Ref AMIDeployDate

1 Ответ

0 голосов
/ 13 февраля 2020

Предполагая, что у вас есть некоторая информация для отключения (например, известный AccountId или параметр в стеке), вы можете создать условие , которое определяет стек как dev. Затем вы можете использовать функцию «Fn :: If», например:

FindAmiResource:
    Type: 'Custom::FindAmiFunction'
    Properties:
      ServiceToken:
        Fn::ImportValue:
          !Sub 
          - cfn:find-ami:${AWSAccount}:arn
          - {AWSAccount: !FindInMap [AccountIDMap, Accounts, !Ref "AWS::AccountId"]}
      AmiName: 'Corp_w2016_Std-*'
      AmiOwner: '9999999999999'
      DeployDate: 
        Fn::If:
          - DevCondition
          - !Ref AWS::NoValue
          - !Ref AMIDeployDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...