函数索引

资源编排服务提供多个内部函数,帮助您管理资源栈。您可以在定义资源(Resources)和输出(Outputs)时使用内部函数。本文为您介绍资源编排服务支持的内部函数相关信息。

注意事项

如果您在定义函数时使用YAML缩写函数的语法形式,并在函数的参数值中使用另一个函数。请确保至少其中一个函数使用完整的函数语法形式,否则函数无效。

  • 下列函数语法形式无效。

    !Base64Encode !Sub string
    !Base64Encode !Ref logical_ID
  • 下列两种语法形式均有效。

    !Base64Encode
     "Fn::Sub": string
    
    Fn::Base64Encode:
     !Sub string

支持的函数

函数名称

描述

Fn::Base64Encode

返回输入字符串的Base64编码结果。

Fn::Base64Decode

返回Base64编码的字符串解码的结果。

Fn::Str

内部函数Fn::Str返回输入数字的字符串结果。

Fn::Indent

调整字符串的缩进格式。

Fn::FindInMap

返回与Mappings声明的双层映射中的键对应的值。

Fn::GetAtt

返回模板中的资源的属性值。

Fn::Join

将一组值连接起来,用特定分隔符隔开。

Fn::Sub

将输入字符串中的变量替换为您指定的值。

Fn::Select

通过索引返回列表或字典中的数据。

Ref

返回指定参数或资源的值。

Fn::GetAZs

返回指定Region的可用区列表。

Fn::Replace

将字符串中指定子字符串用新字符串替换。

Fn::Split

通过指定分隔符对字符串进行切片,并返回所有切片组成的列表。

Fn::Equals

比较两个值是否相等。如果两个值相等,则返回true;如果不相等,则返回false。

Fn::And

代表AND运算符,最少包含两个条件。如果所有指定条件计算为true,则返回true;如果任意条件计算为false,则返回false。

Fn::Or

代表OR运算符,最少包含两个条件。如果任意一个指定条件计算为true,则返回true;如果所有条件都计算为false,则返回false。

Fn::Not

代表NOT运算符。对计算为false的条件,返回true;对计算为true的条件,返回false。

Fn::Index

查找列表中某个元素的索引。

Fn::If

如果指定的条件计算为true,则返回一个值;如果指定的条件计算为false,则返回另一个值。在模板Resources和Outputs属性值中支持Fn::If内部函数。您可以使用ALIYUN::NoValue伪参数作为返回值来删除相应的属性。

Fn::Length

返回对象的长度。

Fn::ListMerge

合并多个列表为一个列表。

Fn::GetJsonValue

解析JSON字符串,获取指定的Key在第一层所对应的值。

Fn::MergeMapToList

将多个Mapping合并成一个以Mapping为元素的列表。

Fn::Avg

对一组数求平均值。

Fn::SelectMapList

返回一个由map中元素构成的列表。

Fn::Add

对参数进行求和。

Fn::Calculate

对字符串形式的表达式进行计算。

Fn::Max

获取由数字组成的列表中的最大数字。

Fn::Min

获取由数字组成的列表中的最小数字。

Fn::GetStackOutput

获取指定资源栈的输出。

Fn::Jq

支持Jq功能。Jq功能详情请参见Jq文档

Fn::FormatTime

返回格式化后的当前时间。

Fn::MarketplaceImage

返回指定云市场镜像商品Code的默认镜像ID。

Fn::Any

返回指定数组中取值的真假情况。当数组中任意一项为真时,返回true(真),否则返回false(假)。

Fn::Contains

如果列表中至少有一个成员与指定的值匹配,则返回true,否则返回false。

Fn::EachMemberIn

如果第一个列表中的每个成员与第二个列表中的至少一个值匹配,则返回true,否则返回false。

Fn::MatchPattern

检查输入字符串的值能否与正则表达式匹配,如果能匹配则返回true,否则返回false。