Fn።FindInMap、Fn።ImportValue、またはその他のサポートされている関数を使用して AWS CloudFormation で Fn።Sub 関数を使用するにはどうすればよいですか?

最終更新日: 2020 年 8 月 26 日

私は、Fn።FindInMap、Fn።ImportValue、または他のサポートされている関数とともに、AWS CloudFormation で Fn።Sub 関数を使用したいと考えています。

簡単な説明

Fn።Sub 関数を使用して、サポートされている関数を置き換えるか、他の関数の文字列として置き換えることができます。

解決方法

サポートされている関数で Fn።Sub を使用する

AWS CloudFormation テンプレートでは、Fn።Sub を使用して、サポートされている他の関数 (Fn።FindInMapなど) を置き換えることができます。

JSON テンプレートを使用している場合は、Var1NameVar2NameVar1ValueVar2Value に置き換えます。以下はその例です。

{ "Fn::Sub" : [ String, { Var1Name: Var1Value, Var2Name: Var2Value } ] }

次の JSON の例は、Fn።FindInMap の変数を使用している場合、${Domain}Fn።FindInMap の解決値に置き換える方法を示しています。

"Name" : { "Fn::Sub": [ "www.${Domain}", { "Domain": { "Fn::FindInMap" : [ "ABC", "DomainParameters", "DomainName"] }} ]}

YAML テンプレートを使用している場合は、キーと値のペアを使用して複数の変数を置き換えることができます。以下はその例です。

Fn::Sub:
  - String
  - Var1Name: Var1Value
    Var2Name: Var2Value

次の YAML の例は、Fn።FindInMap の変数を使用している場合、${Domain}{ "Fn::FindInMap" : [ "ABC", "DomainParameters", "DomainName"] }} に置き換える方法を示しています。

Name: !Sub
  - www.${Domain}
  - { Domain: !FindInMap ["ABC", "DomainParameters", "DomainName"] }

Fn።Subを文字列として使用して、他の関数を置き換える

Fn።Sub を使用すると、RefFn።GetAttなどの他の関数を置き換えることができます。

たとえば、次のように、Fn።Sub を使用して、Ref を置き換えることができます。

JSON:

"Name": { "Fn::Sub": "www.${Domain}"}

YAML:

Name: !Sub www.${Domain}

この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?