

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# “alfred” 助手和 CloudFormation 参数文件
<a name="alfred-helper"></a>

 cfCT 为你提供了一种名为 *alfred* helper 的机制，用于获取模板中定义的 [SSM 参数存储](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)密钥的值。 CloudFormation 使用 *alfred* 助手，您可以使用存储在 SSM 参数存储中的值，而无需更新模板。 CloudFormation 有关更多信息，请参阅[什么是 CloudFormation 模板？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html#gettingstarted.templatebasics.what) 在《*CloudFormation 用户指南》*中。

**重要**  
 *alfred* 助手有两个限制。参数仅在 AWS Control Tower 管理账户的主区域中可用。作为最佳实践，可以考虑使用堆栈实例之间不会发生变化的值。当“alfred”助手检索参数时，它会从导出该变量的堆栈集中随机选择一个堆栈实例。

## 示例
<a name="w2aac28c41c15c13b7"></a>

 假设你有两个 CloudFormation 堆栈集。*堆栈集 1* 有一个堆栈实例，可部署到一个区域中的一个账户。它在可用区中创建 Amazon VPC 和子网，并且 `VPC ID` 和 `subnet ID` 必须作为参数值传递到*堆栈集 2* 中。在可将 `VPC ID` 和 `subnet ID` 传递到*堆栈集 2* 中之前，必须使用 `AWS:::SSM::Parameter` 将 `VPC ID` 和 `subnet ID` 存储在*堆栈集 1* 中。有关更多信息，请参阅《CloudFormation 用户指南》**中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html)。

**CloudFormation 堆栈集 1：**

 在以下片段中，*alfred* 助手可以`subnet ID`从参数存储中获取`VPC ID`和的值，并将它们作为输入传递给 StackSet 状态机。

```
VpcIdParameter:
    Type: AWS::SSM::Parameter
    Properties:
      Name: '/stack_1/vpc/id'
      Description: Contains the VPC id
      Type: String
      Value: !Ref MyVpc

SubnetIdParameter:
    Type: AWS::SSM::Parameter
    Properties:
      Name: '/stack_1/subnet/id'
      Description: Contains the subnet id
      Type: String
      Value: !Ref MySubnet
```

**CloudFormation 堆栈集 2：**

 该片段显示了 CloudFormation stack 2 `manifest.yaml` 文件中指定的参数。

```
parameters:
      - parameter_key: VpcId
        parameter_value: $[alfred_ssm_/stack_1/vpc/id]
      - parameter_key: SubnetId
        parameter_value: $[alfred_ssm_/stack_1/subnet/id]
```

**CloudFormation 堆栈集 2.1：**

 该片段显示您可以列出`alfred_ssm`属性以支持类型*CommaDelimitedList*参数。有关更多信息，请参阅《CloudFormation 用户指南》**中的 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type)。

```
parameters:
      - parameter_key: VpcId # Type: String
        parameter_value: $[alfred_ssm_/stack_1/vpc/id']
      - parameter_key: SubnetId # Type: String
        parameter_value: $[ alfred_ssm_/stack_1/subnet/id']
      - parameter_key: AvailablityZones # Type: CommaDelimitedList
        parameter_value:   - "$[alfred_ssm_/availability_zone_1]"  - "$[alfred_ssm_/availability_zone_2]"
```