【问题标题】:CloudFormation Combine Sub - Import - SubCloudFormation 组合子 - 导入 - 子
【发布时间】:2020-08-20 02:29:15
【问题描述】:

我正在尝试创建一个参数,并希望将 !Sub 和 !Import 组合多次。

Parameters:
  Environment:
    Description: Stackname of Environment
    Type: String

Resources:

  IAMRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Statement:
        - Effect: Allow
          Principal:
            Service: '*'
          Action: ['sts:AssumeRole']
      Path: /
      Policies:
      - PolicyName: S3Files
        PolicyDocument:
          Statement:
          - Sid: 'S3Files'
            Effect: Allow
            Action:
              - 's3:DeleteObjectTagging'
              - 's3:GetObjectRetention'
              - 's3:ListMultipartUploadParts'
              - 's3:PutObject'
              - 's3:GetObjectAcl'
              - 's3:GetObject'
              - 's3:AbortMultipartUpload'
              - 's3:PutObjectRetention'
              - 's3:GetObjectVersionAcl'
              - 's3:GetObjectTagging'
              - 's3:PutObjectTagging'
              - 's3:DeleteObject'
              - 's3:PutObjectAcl'
              - 's3:GetObjectVersion'
            Resource: !Sub
                - '${ARN}/*'
                - ARN: 
                  Fn::ImportValue: !Sub ${Environment}:S3:Arn

根据文档,这应该是可能的,但不幸的是我总是收到一条错误消息 Template contains errors.: [/Resources/IAMRole/Type/Policies/0/PolicyDocument/Statement/0/Resource/Fn::Sub/1/ARN] 'null' values are not allowed in templates

UseCase 是如何工作的?

【问题讨论】:

    标签: amazon-cloudformation


    【解决方案1】:

    Resource 部分存在空格问题。

    Resource: !Sub
        - '${ARN}/*'
        - ARN: 
          Fn::ImportValue: !Sub ${Environment}:S3:Arn
    

    应该是

    Resource: !Sub
        - '${ARN}/*'
        - ARN: 
            Fn::ImportValue: !Sub ${Environment}:S3:Arn
    

    注意:FnARNN 开始,而不是 A

    解释:第一个缩进带有Fn::ImportValue 的行被认为是!Sub 的输入,第二个缩进它成为ARN: 的值,定义了它上面的行。

    附注:在整个模板中统一使用 2 个空格或 4 个空格或制表符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2020-09-09
      • 1970-01-01
      • 2020-11-23
      • 2020-12-21
      相关资源
      最近更新 更多