微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS CloudFront - 跨云前端堆栈将参数作为“全局”参数导入

如何解决AWS CloudFront - 跨云前端堆栈将参数作为“全局”参数导入

我想从我正在运行的堆栈中导出一个值,然后将它作为“全局”参数导入另一个堆栈,以便我可以操纵它并将其用于 S3 存储桶名称。我已经知道我可以使用以下内容在资源中的一行中单独导入值:

{ "Fn::ImportValue" : { "Fn::Sub" : "${StackName}-ParameterName" } }

但是有没有办法将它导入我的参数部分?

感谢您的帮助

解决方法

但是有没有办法将它导入我的参数部分?

没有这样的选择。最接近的方法是将全局值保存在 SSM Parameter Store 中,并使用 CloudFormation 中的 dynamic references 作为 Default 中的 Parameters 值。

,

有两种方法可以实现这一点

  1. 使用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

  1. 您在启动堆栈时使用源堆栈的输出并将它们传递到目标堆栈。

配置的源堆栈输出

    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 举报,一经查实,本站将立刻删除。