AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Fn::Split

要将字符串拆分为一列字符串值,以便从结果字符串列表中选择一个元素,请使用 Fn::Split 内部函数。用分隔符 (例如逗号 ,) 指定拆分位置。在您拆分字符串后,请使用 Fn::Select 函数选择特定的元素。

例如,如果将以逗号分隔的子网 ID 字符串导入您的堆栈模板,您可以在每个逗号的位置拆分字符串。在子网 ID 列表中,使用 Fn::Select 内部函数来指定资源的子网 ID。

声明

JSON

Copy
{ "Fn::Split" : [ "delimiter", "source string" ] }

YAML

完整函数名称的语法:

Copy
Fn::Split: [ delimiter, source string ]

短格式的语法:

Copy
!Split [ delimiter, source string ]

参数

您必须指定两个参数。

分隔符

确定源字符串划分位置的字符串值。

源字符串

要拆分的字符串值。

返回值

字符串值的列表。

示例

以下示例演示了 Fn::Split 函数的行为。

简单列表

以下示例在每个竖条处拆分字符串 (|)。该函数返回 ["a", "b", "c"]

JSON

Copy
{ "Fn::Split" : [ "|" , "a|b|c" ] }

YAML

Copy
!Split [ "|" , "a|b|c" ]

空字符串值的列表

如果您用连续的分隔符拆分字符串,则结果列表将包含空字符串。以下示例显示了带有两个连续的分隔符和一个附加分隔符的字符串如何进行拆分。该函数返回 ["a", "", "c", ""]

JSON

Copy
{ "Fn::Split" : [ "|" , "a||c|" ] }

YAML

Copy
!Split [ "|" , "a||c|" ]

拆分已导入的输出值

以下示例拆分已导入的输出值,然后按照 Fn::Select 函数所指定的,从子网 ID 的结果列表中选择第三个元素。

JSON

Copy
{ "Fn::Select" : [ "2", { "Fn::Split": [",", {"Fn::ImportValue": "AccountSubnetIDs"}]}] }

YAML

Copy
!Select [2, !Split [",", !ImportValue AccountSubnetIDs]]

支持的函数

对于 Fn::Split 分隔符,不能使用任何函数。您必须指定字符串值。

对于值的 Fn::Split 列表,您可使用以下函数:

  • Fn::Base64

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::Join

  • Fn::Select

  • Ref