使用 OpsWorks 的 Cloudformation 处理空值
Posted
技术标签:
【中文标题】使用 OpsWorks 的 Cloudformation 处理空值【英文标题】:Cloudformation with OpsWorks handle empty value 【发布时间】:2016-12-24 06:33:40 【问题描述】:在我的 cloudformation 模板中,我有一个可以为空的参数,但 Fn::Join 假设一个值,这就是示例:
"Parameters":
"ConfigureRecipe":
"Description": "Configure recipe.",
"Type": "String"
"Configure": [ "Fn::Join": [ "", [ "myChefRecipe::", "Ref": "ConfigureRecipe" ] ] ]
如果 ConfigureRecipe 为空,Cloudfomation 会将配方“myChefRecipe::”传递给 OpsWorks,并在配置启动时给我一个错误,因为一个好的变量是“myChefRecipe::mysql”。我该如何处理?如果 ConfigureRecipe 为空,则可能使用 AWS::NoValue。
【问题讨论】:
【参考方案1】:也许你可以试试这个:
"Parameters":
"ConfigureRecipe":
"Description": "Configure recipe.",
"Type": "String"
"Conditions" :
"CreateLayerWithoutRecipie" : "Fn::Not" : ["Ref" : "ConfigureRecipe"]
,
"Layer":
"Type":"AWS::OpsWorks::Layer",
....
....
....
"Configure": [ "Fn::If" : [ "CreateLayerWithoutRecipie", "Ref" : "AWS::NoValue", "Fn::Join": [ "", [ "myChefRecipe::", "Ref": "ConfigureRecipe" ] ] ]]
【讨论】:
以上是关于使用 OpsWorks 的 Cloudformation 处理空值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CloudFormation 创建 OpsWorks 用户?