【问题标题】:How do I get the s3BucketName from CDK bootstrap without creating an asset?如何在不创建资产的情况下从 CDK 引导程序获取 s3BucketName?
【发布时间】:2020-12-18 10:23:29
【问题描述】:

如何从引导堆栈中获取 s3 存储桶名称?

除了创建虚拟资产并获取 s3BucketName 属性之外,我似乎找不到任何其他方法。

-- 更新:

我有两个堆栈:

堆栈 1:创建一堆 S3 资产。

堆栈 2:创建 IAM 策略以授予对堆栈 1 中创建的资产的访问权限(无资产)

我需要在 Stack 2 中查找引导资产存储桶,以便能够在我的 IAM 策略中添加资源属性

我为此找到了多种解决方案,但所有这些都看起来很老套

CDK 框架可以在实例化新资产时引用存储桶,而无需我提供存储桶名称,这意味着框架知道存储桶名称,因此我必须能够掌握它并避免硬编码、创建虚拟资产或在堆栈 2 中的 IAM 策略中添加资源属性时使用 Fn::Import

【问题讨论】:

  • 我可能已经将我的问题描述为 wague,并更新了问题

标签: amazon-web-services amazon-s3 aws-cdk bucket


【解决方案1】:

回答我自己的问题,可以通过DefaultStackSynthesizer获取资产桶名:

示例:

constassetBucketName = cdk.DefaultStackSynthesizer.DEFAULT_FILE_ASSETS_BUCKET_NAME

【讨论】:

    【解决方案2】:

    Toolkit reference

    cdk bootstrap --toolkit-bucket-name <bucket name>
    

    【讨论】:

    • 这意味着我在某处对存储桶进行了硬编码。 cdk 的内部知道存储桶名称,而无需我提供它。
    猜你喜欢
    • 2021-11-27
    • 2018-01-07
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2020-12-06
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多