内部函数
下述函数即将下线,后续请使用最新版本的函数。
编排服务提供多个内部函数帮助您管理您的堆栈。您可以在资源(Resources)和输出(Outputs)中使用内部函数。
Fn::Base64
内部函数 Fn::Base64 返回输入字符串的 Base64 编码结果。
声明
"Fn::Base64" : stringToEncode
参数
stringToEncode
返回值
用 Base64 表示方法的原始字符串。
示例
"Fn::Base64" : "string to encode"
Fn::FindInMap
内部函数 Fn::FindInMap 返回与 Mappings 部分声明的双层映射中的键对应的值。
声明
"Fn::FindInMap" : [ "MapName", "MapTopKey", "MapSecondKey"]
参数
MapName:Mappings 部分中所声明映射的 ID,包含键和值。
MapTopKey:第一级键,其值是一个键/值对列表。
MapSecondKey:第二级键,其值是一个字符串或者数字。
返回值
返回MapSecondKey 的值。
示例
"Mappings" : {
"IntanceTypeMap" : {
"bj" : { "N1" : "1", "N2" : "2" },
"gz" : { "N3" : "4", "N4" : "8" }
}
}
"Fn::FindInMap" : [ "IntanceTypeMap", "bj", "N1"]
支持的函数
您可以在 Fn::FindInMap 函数中使用以下函数:
- Fn::FindInMap
- Ref
Fn::GetAtt
内部函数 Fn::GetAtt 返回模板中的资源的属性值。
声明
"Fn::GetAtt": [ "resourceID", "attributeName" ]
参数
resourceID:Resources中资源的 ID。
attributeName:Resources资源的属性名称。
返回值
属性值。
示例
此示例返回 Resource ID 为 bcc 的 InstanceId 属性。
"Fn::GetAtt" : [ "bcc" , "InstanceId" ]
Fn::Join
内部函数 Fn::Join 将一组值连接起来,用特定分隔符隔开。
声明
{ "Fn::Join" : [ "delimiter", [ "string1", "string2", ... ]] }
参数
delimiter:分隔符。分隔符可以为空,这样就将所有的值直接连接起来。
[ “string1”, “string2”, … ]
被连接起来的值列表。
返回值
被连接起来的字符串。
示例
“Fn::Join” : [ “,”, [ “c”, “o”, “s” ] ]
返回:”c,o,s”。
支持的函数
- Fn::Base64
- Fn::GetAtt
- Fn::Join
- Fn::Select
- Ref
Fn::Select
内部函数 Fn::Select 通过索引返回数据元列表中的单个数据元。
声明
数据元列表可以是一个数组:
"Fn::Select" : [ "index", [ "value1", "value2", ... ] ]
数据元列表也可以是一个映射表:
"Fn::Select" : [ "index", { "key1": "value1", ... } ]
参数
index
1.待检索数据元的索引。如果数据元列表是一个数组,则索引是 0 到 N-1 之间的某个值,其中 N 代表阵列中元素的数量。如果数据元列表是一个映射表,则索引是映射表中的某个键。 2.如果根据找不到索引对应的值,则返回空字符串。
返回值
选定的数据。
示例
如果数据元列表是一个数组:
{ "Fn::Select" : [ "1", [ "N1", "N2", "N3", "N4" ] ] }
此示例返回:”N1”。
如果数据元列表是一个映射表:
{ "Fn::Select" : [ "bj", [ "bj": "N1", "gz": "N2" ] ] }
此示例返回:”N1”。
支持的函数
对于 Fn::Select 索引值,您可以使用 Ref 函数。
对于对象的 Fn::Select 列表,您可以使用以下函数:
- Fn::Base64
- Fn::FindInMap
- Fn::GetAtt
- Fn::Join
- Fn::Select
- Ref
Ref
内部函数 Ref 返回指定参数或资源的值。
- 如果指定参数是 Resource ID,则返回资源的值。
- 否则认为指定参数是参数,将尝试返回参数的值。
声明
"Ref" : "Name"
参数
Name:您想引用的资源或参数之逻辑名称。
返回值
资源的值或者参数的值。
支持的函数
不能在 Ref 函数中使用任何函数。必须指定作为资源逻辑 ID 的字符串。
Fn::Replace
内部函数 Fn::Replace 将字符串中的指定子字符串用新字符串替换。
声明
{ "Fn::Replace" : [ {"obj_key": "obj_value"}, "obj_string"]
参数
{“obj_key”: “obj_value”}
obj_key:将要被替换的字符串。
obj_value:将要替换成的最终字符串。
obj_string 将把 obj_string 字符串中的所有 obj_key 子字符串替换成 obj_value 字符串。
返回值
被替换后的字符串。
支持的函数
- Fn::Base64
- Fn::GetAtt
- Fn::Join
- Fn::Select
- Ref
Fn::Split
内部函数Fn::Split通过指定分隔符对字符串进行切片,并返回所有切片组成的列表。
声明
"Fn::Split" : [ "delim", "obj_string" ]
参数
- delimiter:分隔符,例如: ',',';','\n','\t' 等。
- obj_string:将要被切片的字符串。
返回值
返回切片后所有字符串组成的列表。
示例
如果数据元列表是一个数组:
{"Fn::Split": [",", "2,5,7"]}
返回:["2", " 5", "7 "]。
支持的函数
- Fn::Base64
- Fn::FindInMap
- Fn::GetAtt
- Fn::Join
- Fn::Select
- Fn::Replace
- Fn::If
Fn::Equals
比较两个值是否相等。如果两个值相等,则返回 true,如果不等,则返回 false。
声明
{"Fn::Equals": ["value_1", "value_2"]}
参数
value_1 value_2
要比较的任意类型的值。
返回值
true 或 false。
示例
在 Conditions 中使用 Fn::Equals 定义条件。
支持的函数
- Fn::Or
- Fn::Not
- Fn::Equals
- Fn::FindInMap
- Fn::And
- Ref
Fn::And
如果所有指定条件计算为 true,则返回 true;如果任意条件计算为 false,则返回 false。这代表 AND 运算符。最少可以包含两个条件。
声明
{"Fn::And": ["condition", {...}]}
参数
condition
计算为 true 或 false 的条件。
返回值
true 或 false。
示例
在 Conditions 中使用 Fn::And 定义一个条件。
支持的函数
- Fn::Or
- Fn::Not
- Fn::Equals
- Fn::FindInMap
- Fn::And
- Ref
Fn::Or
如果任意一个指定条件计算为 true,则返回 true;如果所有条件都计算为 false,则返回 false。这代表 OR 运算符。最少可以包含两个条件。
声明
{"Fn::Or": ["condition", {...}]}
参数
condition
计算为 true 或 false 的条件。
返回值
true 或 false。
示例
在 Conditions 中使用 Fn::Or 定义一个条件。
支持的函数
- Fn::Or
- Fn::Not
- Fn::Equals
- Fn::FindInMap
- Fn::And
- Ref
Fn::Not
对计算为 false 的条件返回 true;对计算为 true 的条件返回 false;这代表 NOT 运算符。
声明
{"Fn::Not": "condition"}
参数
condition
计算为 true 或 false 的条件。
返回值
true 或 false。
示例
在 Conditions 中使用 Fn::Not 定义一个条件。
支持的函数
- Fn::Or
- Fn::Not
- Fn::Equals
- Fn::FindInMap
- Fn::And
- Ref
Fn::If
如果指定的条件计算为 true,则返回一个值;如果指定的条件计算为 false,则返回另一个值。在模板 Resources 和 Outputs 属性值中支持 Fn::If 内部函数。
声明
{"Fn::If": ["condition_name", "value_true", "value_false"]}
参数
condition_name
Conditions 中条件对应的条件名称。通过条件名称引用条件。
value_true
当指定的条件计算为 true 时,返回此值。
value_false
当指定的条件计算为 false 时,返回此值。
示例
根据输入的参数,确定是否创建数据盘。
支持的函数
- Fn::Or
- Fn::Not
- Fn::Equals
- Fn::FindInMap
- Fn::And
Ref