如何解决AWS CloudFront - 跨云前端堆栈将参数作为“全局”参数导入
我想从我正在运行的堆栈中导出一个值,然后将它作为“全局”参数导入另一个堆栈,以便我可以操纵它并将其用于 S3 存储桶名称。我已经知道我可以使用以下内容在资源中的一行中单独导入值:
{ "Fn::ImportValue" : { "Fn::Sub" : "${StackName}-ParameterName" } }
但是有没有办法将它导入我的参数部分?
感谢您的帮助
解决方法
但是有没有办法将它导入我的参数部分?
没有这样的选择。最接近的方法是将全局值保存在 SSM Parameter Store 中,并使用 CloudFormation 中的 dynamic references 作为 Default
中的 Parameters
值。
有两种方法可以实现这一点
-
使用SSM Parameter Store,将源栈中的值存储到SSM参数存储中
BasicParameter: Type: AWS::SSM::Parameter Properties: Name: AvailabilityZone Type: String Value: Ref: AvailabilityZone
然后将值直接引用到参数部分,如下所示:
---
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
...
AvailabilityZone:
Description: Amazon EC2 instance Availablity Zone
Type: AWS::SSM::Parameter::Value<String>
Default: AvailabilityZone
Mappings: {}
Conditions: {}
Resources:
myinstance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone:
Ref: AvailabilityZone
...
完整的例子可以在here
- 您在启动堆栈时使用源堆栈的输出并将它们传递到目标堆栈。
配置的源堆栈输出
Outputs:
InstanceID:
Description: The Instance ID
Value: !Ref EC2Instance
在目标堆栈中使用它们:
aws \
--region us-east-1 \
cloudformation deploy \
--template-file cfn.yml \
--stack-name mystack \
--no-fail-on-empty-changeset \
--tags Application=awesomeapp \
--parameter-overrides \
"Somevar=OUTUT_FROM_SOURCE_STACK"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。