

这是新的《Amazon CloudFormation 模板参考指南》**。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助，请参阅《Amazon CloudFormation 用户指南》[https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html)。

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

本主题介绍了如何在 CloudFormation 模板中使用 `AWS::ServiceCatalog` 转换来引用现有 Amazon 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 模板中引用现有 Service Catalog 预置产品的输出。

在这些示例中，`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]]
```