gpt4 book ai didi

amazon-web-services - 插入 CloudFormation ImportValue 类似于如何插入参数?

转载 作者:行者123 更新时间:2023-12-04 10:12:02 28 4
gpt4 key购买 nike

我们有一个巨大的 VPC CF 模板,用于定义我们的开发、暂存和生产环境。这些资源之一是通用 S3 存储桶,用于与特定客户不直接相关的任务。此存储桶有一个名为 VPCCommonBucket 的导出,其中仅包含存储桶名称。

我尝试在另一个堆栈中使用此导出值,引用该存储桶,创建一个只能访问该存储桶的 IAM 用户,进一步将其限制为该存储桶中的单个目录。

当使用参数时,我可以这样做:

!Sub "arn:aws:s3:::${BucketName}/prefix/*"

但是我找不到与使用 Fn::ImportValue/!ImportValue 类似的东西。有没有办法像我在这里尝试那样将导出的变量插入字符串中?或者这是否需要返回并更改我们的主模板以包含桶的 arn 的另一个导出?

最佳答案

您可以在 cloudformation 模板中将 Fn::ImportValue!Sub 结合使用。然而,内部函数引用类型和顺序在这里很重要。根据AWS Documentation :

You can't use the short form of !ImportValue when it contains a !Sub. Instead, you must use the full function name.

因此,请像这样构造您的模板,

Properties:
Bucket:
Fn::Sub:
- 'arn:aws:s3:::${BucketName}/prefix/*'
- BucketName: !ImportValue VPCCommonBucket

此外,您可能知道,要使用导入功能,您必须拥有 declared the resource an output在单独的 cloudform 模板中。这是AWS提供的walk-through如果你遇到困难。

关于amazon-web-services - 插入 CloudFormation ImportValue 类似于如何插入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61290926/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com