このトピックでは、AWS::ServiceCatalog
変換を使用して CloudFormation テンプレートの既存の AWS Service Catalog プロビジョニングされた製品からの出力を参照する方法について説明します。
使用方法
AWS::ServiceCatalog
変換を使用するには、CloudFormation テンプレートの最上位レベルで宣言する必要があります。AWS::ServiceCatalog
を他のテンプレートセクションに埋め込まれたトランスフォームとして使用することはできません。
出力値が必要な場合は、プロビジョニングされた製品の名前と出力キー名を指定します。
テンプレートでは、複数のプロビジョニングされた製品とキー名を参照できます。テンプレートごとに最大 20 個です。プロビジョニング中、トランスフォームは、CloudFormation テンプレートの出力値を置き換えて、参照されるプロビジョニングされた各プロダクトとキーから値を取得します。
宣言では、リテラル文字列 AWS::ServiceCatalog
を値として使用する必要があります。変換値の指定には、パラメータまたは関数は使用できません。
構文
CloudFormation テンプレートでこの変換を宣言するには、次の構文を使用します。
JSON
{
"Transform":"AWS::ServiceCatalog",
"Resources":{
...
}
}
YAML
Transform: AWS::ServiceCatalog
Resources:
...
AWS::ServiceCatalog
変換は追加のパラメータがないスタンドアロン宣言です。
例
次の例では、CloudFormation テンプレートの既存のサービスカタログでプロビジョニングされた製品からの出力を参照する方法が示されます。
以下の例では、SampleProvisionedProduct
は以前に作成されたプロビジョニング済み製品です。SampleOutputKey
は、このプロビジョニング済み製品の出力キーです。
JSON
この例は、動作しているバージョンです。
値を文字列リテラルとしてラップしないテンプレートバージョンは失敗します。
{
"AWSTemplateFormatVersion":"2010-09-09",
"Transform":"AWS::ServiceCatalog",
"Resources":{
"ExampleParameter":{
"Type":"AWS::SSM::Parameter",
"Properties":{
"Type":"String",
"Value":"[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]"
}
}
}
}
YAML
例 1–4 は有効なテンプレートです。例 1 と 2 では、トランスフォームと値は文字列リテラルです。
例 5 は有効なテンプレートではありません。値は、'
、"
、>-
のいずれかの文字列で改行される必要があります。そうしないと、ユーザーはエラーを受け取ります。
// Example 1
AWSTemplateFormatVersion: 2010-09-09
Transform: 'AWS::ServiceCatalog'
Resources:
ExampleParameter:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: '[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]'
// Example 2
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: 'AWS::SSM::Parameter'
Properties:
Type: String
Value: '[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]'
// Example 3
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: 'AWS::SSM::Parameter'
Properties:
Type: String
Value: "[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]"
// Example 4
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: >-
[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]
// Example 5
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::ServiceCatalog
Resources:
ExampleParameter2:
Type: AWS::SSM::Parameter
Properties:
Type: String
Value: [[servicecatalog:provisionedproduct:SSMProductProvisionedProduct:SampleOutputKey]]