Gra*_*eme 15 amazon-web-services amazon-cloudformation
我有一个字符串,它由许多变量组成,我将这些变量用于许多不同的事物,例如标签和主机名。
有没有办法创建一个可重用的字符串,我可以通过模板引用它?
对此的任何想法将不胜感激。编辑:一个例子是传入 2 个参数,例如 ProjectName 和 Environment 加入它们
"Fn::Join" : [ "-", [ {"Ref":"ProjectName"}, {"Ref":"Environment"} ] ]
Run Code Online (Sandbox Code Playgroud)
并在许多地方使用结果
不幸的是,我的实验与格雷姆的结论一致。我已经为此苦苦挣扎了一段时间,但没有找到一种通过 Fn::Join 计算字符串并将其保留在模板中的方法。
我可以和你分享一个典型的例子吗?
截至 2014 年 9 月 18 日,在资源部分存储字符串值以供重用的最复杂方法是通过(二级)映射。更好的是,我可以预先计算条件并确定是否使用字符串。但不幸的是,字符串的存储是行不通的。
这是此类映射的示例节……
"LoadBalancerBucketMap": {
"BucketName": {
"string": {
"Fn::Join": [
"-",
[
"mylb",
{
"Ref": "Environment"
},
"logs"
]
]
}
}
},
Run Code Online (Sandbox Code Playgroud)
这是资源中对它的访问表达式
"S3BucketName": {
"Fn::FindInMap": [
"LoadBalancerBucketMap",
"BucketName",
"string"
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,Environment 是一个带有方便默认值的文字字符串参数。所以这是创建和重用字符串的一个非常清楚的例子。但这是 CloudFormation 处理器所说的……
模板验证错误:模板格式错误:每个映射属性都必须是字符串或列表。
所以我和你一样沮丧,模板中似乎没有办法提供临时字符串变量的效果。
……据我所知。但是您最初收到的答案与此相反(尽管没有示例)。
因此,如果有人确实有示例解决方法,那么请他们分享一下吗?
归档时间: |
|
查看次数: |
13588 次 |
最近记录: |