amazon-s3 - 读取CDK中的bucket对象

标签 amazon-s3 import terraform aws-cloudformation aws-cdk

在 terraform 中,在部署时从 s3 存储桶读取对象,我可以使用数据源

data aws_s3_bucket_object { }

CDK中有类似的概念吗?我见过各种将 Assets 上传到 s3 以及导入现有存储桶的方法,但没有从存储桶中获取对象。我需要从存储桶中读取一个配置文件,这将影响进一步的部署。

最佳答案

重要的是要记住,CDK 本身不是一个部署选项。它可以部署,但是您在 cdk 堆栈中编写的代码是资源的定义 - 而不是部署方法。

因此,您可以执行以下操作之一。

  1. 使用适合您语言的 SDK 调用 s3 存储桶并直接加载数据。这是完全可以接受且易于理解的在部署之前收集所需信息的方法 - 每次堆栈 Synths 时(它在每次 cdk 部署 之前执行该操作,该代码将运行并提取您的数据。

  2. 使用 CodePipeline 设置适当的管道,并为其提供两个源 - 第一个是您的版本控制存储库,第二个是您的 s3 存储桶:

https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html

  • 首选方法 - 删除 json 文件,并使用 Parameter Store。 CDK 包含的模块将在合成器上创建此参数的 token 版本,并且在部署时它将正确引用回 Systems Manager 参数存储
  • https://docs.aws.amazon.com/cdk/v2/guide/get_ssm_value.html

    如果您的参数在部署后发生变化,您可以轻松地将其作为 cdk 堆栈的一部分(使用 cfn 输出)。如果它们在部署期间/期间发生变化,您确实需要使用 CodePipeline 来管理这些步骤,而不仅仅是 CDK。

    因为请记住:cdk 部署选项只是为了方便。它会执行所有事情,并且无法在中间暂停并执行特定步骤。 (除了非常基本的以外,这取决于此资源)

    关于amazon-s3 - 读取CDK中的bucket对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72379662/

    相关文章:

    带有 AWS S3 的 Django-Oscar 正确保存图像

    ios - 使用 xcode 从 s3 访问数据

    sockets - 有人可以解释一下 "from socket import example"和 "import socket"之间的区别吗?

    python - 使用循环导入打包 python

    azure - Terraform - 通过 terraform 代码使用 Rest API 调用创建 azure 成本管理 View

    amazon-web-services - Terraform - 使用在单独文件中创建的安全组 ID 来创建 EC2 实例

    javascript - 如何使用 Javascript 从 AWS S3 检索多个对象,然后在检索到它们后执行某个函数?

    python - 如何使用 boto3 从 s3 获取最后修改的文件名

    objective-c - Objective-C 中的#import 和#include 有什么区别?

    amazon-rds - RDS 集群和数据库实例概念