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