【问题标题】:Cloudformation template Lambda environment variable error - Value of property Variables must be an object with StringCloudformation 模板 Lambda 环境变量错误 - 属性变量的值必须是带有字符串的对象
【发布时间】:2018-11-09 01:19:41
【问题描述】:

我想使用 cloudformation 映射为我的 lambda 函数设置环境变量。因此我使用Fn::FindInMap 从映射中获取变量的值。但我收到了错误 - Value of property Variables must be an object with String (or simple type) properties

Mappings:
  DomainResourceMapping:
    DUBCrossAccountIAMRole:
      beta: "xyz"
      prod: "act"

Resources:
  LambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: '...t'
      Runtime: java8
      CodeUri:
        Bucket: ...
        Key: ...
      Description: nn
      Timeout: 20
      MemorySize: 512
      Environment:
        Variables:
          DUB_CROSS_ACCOUNT_IAM_ROLE:
          - Fn::FindInMap:
            - DomainResourceMapping
            - DUBCrossAccountIAMRole
            - {Ref: Stage}

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudformation serverless-framework


    【解决方案1】:

    您将DUB_CROSS_ACCOUNT_IAM_ROLE 设置为一个数组。试试

     Environment:
        Variables:
          DUB_CROSS_ACCOUNT_IAM_ROLE:
            Fn::FindInMap:
            - DomainResourceMapping
            - DUBCrossAccountIAMRole
            - {Ref: Stage}
    

    或使用短语法

     Environment:
        Variables:
          DUB_CROSS_ACCOUNT_IAM_ROLE: !FindInMap [ DomainResourceMapping, DUBCrossAccountIAMRole, !Ref Stage
    

    【讨论】:

      猜你喜欢
      • 2021-03-09
      • 2021-11-23
      • 1970-01-01
      • 2015-07-17
      • 2021-03-31
      • 2018-04-30
      • 2018-08-01
      • 1970-01-01
      • 2020-03-25
      相关资源
      最近更新 更多