AWS Cloudformation:InvalidTemplateException `每个 Condition 成员都必须是字符串。`

问题描述 投票:0回答:1
  • 我为 lambda 函数使用条件资源创建。
  • 当我尝试构建模板时,出现错误
    InvalidTemplateException Every Condition member must be a string.
    。 CLI 没有提供有关哪里出现问题的更多详细信息。
  • 由于我的条件是一个字符串,我不确定出了什么问题。
代码:
Parameters:
  LocalExecution:
    Type: String
    Default: "false"
    AllowedValues:

Conditions:
  IsLocalExecution: !Equals [ !Ref LocalExecution, 'true' ]

Resources:
  ProductionDeploy:
    Type: AWS::Serverless::Function
    Condition: !Not [ IsLocalExecution ]
    Properties: 
    ...

  LocalExecution:
    Type: AWS::Serverless::Function
    Condition: IsLocalExecution
    Properties: 
    ...
aws-cloudformation
1个回答
0
投票
问题

这就是问题:

Condition: !Not [ IsLocalExecution ]

解决方案

创造新条件

IsNotLocalExecution: !Equals [ !Ref LocalExecution, 'false' ]

改为使用该条件:

  ProductionDeploy:
    Type: AWS::Serverless::Function
    Condition: IsNotLocalExecution
    Properties: 
    ...
注释

由于我的条件是一个字符串,我不确定出了什么问题。

这是一个误解。

!Not
会将条件转换为布尔值。它不再是一根绳子了。

© www.soinside.com 2019 - 2024. All rights reserved.