

これは新しい CloudFormation テンプレートリファレンスガイドです。ブックマークとリンクを更新してください。CloudFormation の開始方法については、『[AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)』を参照してください。

# `AWS::ServiceCatalog` 変換
<a name="transform-aws-servicecatalog"></a>

このトピックでは、`AWS::ServiceCatalog` 変換を使用して CloudFormation テンプレートの既存の AWS Service Catalog プロビジョニングされた製品からの出力を参照する方法について説明します。

## 使用方法
<a name="aws-servicecatalog-usage"></a>

`AWS::ServiceCatalog` 変換を使用するには、CloudFormation テンプレートの最上位レベルで宣言する必要があります。`AWS::ServiceCatalog` を他のテンプレートセクションに埋め込まれたトランスフォームとして使用することはできません。

出力値が必要な場合は、プロビジョニングされた製品の名前と出力キー名を指定します。

テンプレートでは、複数のプロビジョニングされた製品とキー名を参照できます。テンプレートごとに最大 20 個です。プロビジョニング中、トランスフォームは、CloudFormation テンプレートの出力値を置き換えて、参照されるプロビジョニングされた各プロダクトとキーから値を取得します。

宣言では、リテラル文字列 `AWS::ServiceCatalog` を値として使用する必要があります。変換値の指定には、パラメータまたは関数は使用できません。

### 構文
<a name="aws-servicecatalog-syntax"></a>

CloudFormation テンプレートでこの変換を宣言するには、次の構文を使用します。

#### JSON
<a name="aws-servicecatalog-syntax.json"></a>

```
{
  "Transform":"AWS::ServiceCatalog",
  "Resources":{
    {{...}}
  }
}
```

#### YAML
<a name="aws-servicecatalog-syntax.yaml"></a>

```
Transform: AWS::ServiceCatalog
Resources:
  {{...}}
```

`AWS::ServiceCatalog` 変換は追加のパラメータがないスタンドアロン宣言です。

## 例
<a name="aws-servicecatalog-examples"></a>

次の例では、CloudFormation テンプレートの既存のサービスカタログでプロビジョニングされた製品からの出力を参照する方法が示されます。

以下の例では、`SampleProvisionedProduct` は以前に作成されたプロビジョニング済み製品です。`SampleOutputKey` は、このプロビジョニング済み製品の出力キーです。

### JSON
<a name="aws-servicecatalog-example.json.json"></a>

この例は、動作しているバージョンです。

値を文字列リテラルとしてラップしないテンプレートバージョンは失敗します。

```
{
  "AWSTemplateFormatVersion":"2010-09-09",
  "Transform":"AWS::ServiceCatalog",
  "Resources":{
    "ExampleParameter":{
      "Type":"AWS::SSM::Parameter",
      "Properties":{
        "Type":"String",
        "Value":"[[servicecatalog:provisionedproduct:SampleProvisionedProduct:SampleOutputKey]]"
      }
    }
  }
}
```

### YAML
<a name="aws-servicecatalog-example.yaml"></a>

例 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]]
```