メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

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" ]

 

空の文字列値を使用したリスト

継続した区切り記号で文字列を分割する場合、返されるリストには空の文字列が含まれます。次の例では、2 つの連続した区切り記号と追加された区切り記号を持つ文字列がどのように分割されるかを示しています。この関数は ["a", "", "c", ""] を返します。

JSON

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

YAML

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

 

インポートされた出力値の分割

次の例では、インポートされた出力値を分割し、Fn::Select 関数で指定されるように、返されるサブネット ID のリストから 3 番目の要素を選択します。

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