Как добавить условия уровня параметра в AWS Cloudformation - PullRequest
2 голосов
/ 20 апреля 2020

, поэтому я пытаюсь создать условный параметр для ресурсов ConfigRule, созданных с помощью AWS Cloudformation. Тем не менее, у меня проблемы с тем, как я должен правильно его кодировать. Я перепробовал разные вещи и следовал упомянутым документам [1] [2]. Ниже приведен простейший код, который я мог бы подумать, но он все еще не работает, поэтому возникает ошибка "Yaml не правильно сформирован"

[1] https://aws.amazon.com/blogs/infrastructure-and-automation/conditionally-launch-aws-cloudformation-resources-based-on-user-input/

[2 ] https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic -функция-эталонные условия-если

            Conditions:
              IsAllResources: !Equals 
              - !Ref IncludeAllResources 
              - 'True'

            Resources:
              AWSConfigRule:
                Type: AWS::Config::ConfigRule
                Properties:
                  ConfigRuleName: RequiredTags
                  Description: Checks whether your resources have the specified tags.
                  InputParameters:
                    tag1Key: ProjectCode
                    tag1Value: !Ref ProjectCode
                    tag2Key: SupportContact
                    tag2Value: !Ref SupportContact
                  Source:
                    Owner: AWS
                    SourceIdentifier: REQUIRED_TAGS
                  Scope:
                    ComplianceResourceTypes:
                      - AWS::EC2::Volume
                      - AWS::EC2::Instance
                      - AWS::Redshift::Cluster
                      - AWS::Redshift::ClusterSnapshot
                      - AWS::RDS::DBInstance
                      - AWS::RDS::DBSnapshot
                      - AWS::S3::Bucket
                      - AWS::CloudTrail::Trail
                      - AWS::CodeBuild::Project
                      - AWS::CodePipeline::Pipeline
                      - AWS::DynamoDB::Table
                    !If 
                      - IsAllResources
                        - AWS::CloudFormation::Stack
                        - AWS::Lambda::Function
                      - !Ref "AWS::NoValue"

Цените ваши вклады по этому вопросу. Спасибо.

Добавлены обновления: исправлена ​​проблема с использованием этого: Не уверен, поддерживает ли CFN более сложное кодирование

                    Scope:
                      ComplianceResourceTypes:    
                        !If 
                        - IsAllResources
                        -
                          - AWS::EC2::Volume
                          - AWS::EC2::Instance
                        - 
                          - AWS::EC2::Volume
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...