本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
“alfred” 助手和 AWS CloudFormation 参数文件
cfCT 为你提供了一种名为 alfred helper 的机制,用于获取模板中定义的 SSM Parameter Store 密钥的值。 AWS CloudFormation 使用 alfred 助手,您可以使用存储在 SSM 参数存储中的值,而无需更新模板。 AWS CloudFormation 有关更多信息,请参阅什么是 AWS CloudFormation 模板? 在《AWS CloudFormation 用户指南》中。
重要
alfred 助手有两个限制。参数仅在 AWS Control Tower 管理账户的主区域中可用。作为最佳实践,可以考虑使用堆栈实例之间不会发生变化的值。当“alfred”助手检索参数时,它会从导出该变量的堆栈集中随机选择一个堆栈实例。
示例
假设你有两个 AWS CloudFormation 堆栈集。堆栈集 1 有一个堆栈实例,可部署到一个区域中的一个账户。它在可用区中创建 Amazon VPC 和子网,并且 VPC ID
和 subnet ID
必须作为参数值传递到堆栈集 2 中。在可将 VPC
ID
和 subnet ID
传递到堆栈集 2 中之前,必须使用 AWS:::SSM::Parameter
将 VPC ID
和 subnet ID
存储在堆栈集 1 中。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的 AWS:::SSM::Parameter
。
AWS 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
AWS CloudFormation 堆栈集 2:
该片段显示了 AWS 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]
AWS CloudFormation 堆栈集 2.1:
该片段显示您可以列出alfred_ssm
属性以支持类型CommaDelimitedList参数。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的 Parameters
。
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]"