AWS Cloudformation Fn::If 错误验证错误

Posted

技术标签:

【中文标题】AWS Cloudformation Fn::If 错误验证错误【英文标题】:AWS Cloudformation Fn::If wrong validation error 【发布时间】:2015-11-09 21:16:16 【问题描述】:

我在使用 AWS Cloudformation 时遇到了问题。 这是我的模板的一部分

       "CreationPolicy": 
            "ResourceSignal": 
                "Fn::If": [
                    "UseCreationPolicy",
                    
                        "Count": 1,
                        "Timeout": "PT150M"
                    ,
                    
                        "Ref": "AWS::NoValue"
                    
                ]
            
        ,

使用aws cloudformation validate-template --template-body file:////...进行本地验证时没有错误

但在 Cloudformation 中创建 Stack 时出现验证错误: Template error: Fn::If requires a list argument with three elements

有人有类似的东西吗?

关于我在 AWS 论坛上只发现一个问题(未回答):https://forums.aws.amazon.com/thread.jspa?threadID=202297

【问题讨论】:

您的语法看起来正确。您是否尝试过将 Count 指定为字符串?例如 "Count": "1", "Timeout".... 文档中的 Fn::If 示例似乎返回字符串,即使属性是整数。 【参考方案1】:

我猜是 AWS:NoValue 的问题,它是为 ResourceSignal 返回的。我认为您应该尝试返回 AWS:NoValue for CreationPolicy 而不是 ResourceSignal 以便当条件 UseCreationPolicy 为 false 时,应该放弃整个 CreationPolicy。

【讨论】:

以上是关于AWS Cloudformation Fn::If 错误验证错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS 批处理 cloudformation - “CannotPullContainerError”

将现有 AWS 资源整合到 CloudFormation 堆栈中

AWS Cloudformation的相关概念

CloudFormation - 将标签应用于其他 AWS 资源

AWS CloudFormation:Cognito LambdaTrigger CustomEmailSender - 属性“AWS CloudFormation 目前不支持。”和 CDK 的使用

AWS学习笔记--利用CloudFormation管理AWS资源