【问题标题】:Internal transform error in cloudformation stackcloudformation 堆栈中的内部转换错误
【发布时间】:2019-04-23 06:02:39
【问题描述】:

部署此模板时出现“内部转换”错误。我使用映射来转换开发和产品设置。这适用于单个值,但 cloudformation 在尝试转换事件配置时感到窒息。这通过了aws cloudformation validate-template 我的配置有什么问题?:

我使用映射来转换开发和产品设置。这适用于单个值,但 SAM 在尝试转换事件配置时感到窒息,我的配置有什么问题?:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'

Parameters:
  env:
    Description: Config map for transforming template with dev or prod values
    Type: String
    Default: dev

# Template uses !FindInMap along with env parameter to reference dev or prod values defined here
Mappings:
  ConfigMap:
    dev:
      awsAccount: 'dev'
      configFile: 'dev_config.yaml'
      cloudwatchEvents: !Ref "AWS::NoValue"
    prod:
      awsAccount: 'prod'
      configFile: 'prod_config.yaml'
      cloudwatchEvents:
        Schedule1:
          Type: Schedule
          Properties:
            Schedule: rate(3 minutes)

Resources:
  myfunction:
    Type: 'AWS::Serverless::Function'
    Properties:
      CodeUri: ../build
      Handler: lambda_function.lambda_handler
      Runtime: python3.6
      MemorySize: 128
      Timeout: 30
      Events:
        !FindInMap
            - ConfigMap
            - !Ref env
            - cloudwatchEvents

      Environment:
        Variables:
          config_file: !FindInMap
            - ConfigMap
            - !Ref env
            - configFile

      Tags:
        account: !FindInMap
          - ConfigMap
          - !Ref env
          - awsAccount
        blah: derp

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudformation aws-sam-cli


    【解决方案1】:

    您在 !FindInMap 之后似乎有错字,之后您缺少一个冒号。应该是 !FindInMap:

    【讨论】:

    • 不,语法是正确的。如果您删除了 cloudwatchEvents 映射和事件配置节点,则此模板有效
    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 2017-05-07
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2019-12-12
    • 2013-04-16
    相关资源
    最近更新 更多