Использовать макрос внутри условий CloudFormation - PullRequest
1 голос
/ 09 июля 2020

Я написал макрос (названный BucketChecker), который принимает имя корзины s3 и проверяет, существует ли оно уже. Фрагмент вернет true или false соответственно.

Я хотел бы использовать этот макрос в разделе Conditions, как описано в этой статье: https://cloudnineapps.com/blogs/cloud-computing/how-to-create-dynamic-condition-expressions-in-aws-cloudformation-using-macros/.

Идея состоит в том, чтобы использовать это как условие в моем шаблоне, например:

Conditions:
  CreateBucket:
    Fn::Equals: ['false', 'Fn::Transform': {
      Name: BucketChecker,
      Parameters: {
        Operation: 'bucketExists',
        BucketName: 'my-bucket'
      }}]

Resources:
  MyBucket:
    Type: "AWS::S3::Bucket"
    Condition: CreateBucket   # -> only create it if doesn't yet exist
    Properties:      
      BucketName: 'my-bucket'

Но cfn-linter выдает мне ошибку: E8003 Fn::Equals element must be a supported function (Ref, Fn::FindInMap, Fn::Sub, Fn::Join, Fn::Select, Fn::Split)

Мой главный вопрос: даже можно ли добиться этого с помощью CloudFormation? Если да, что не так с моим шаблоном? Связанная статья, кажется, делает то же самое, но моя не работает.

1 Ответ

1 голос
/ 10 июля 2020

На основе комментариев.

cfn-linter было неправильно классифицировало Fn::Transform как некорректное.

Развертывание стека подтвердило наличие нет проблем с Fn::Transform.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...