【问题标题】:how to download zip file from aws s3 using terraform如何使用 terraform 从 aws s3 下载 zip 文件
【发布时间】:2020-05-20 09:35:22
【问题描述】:

我正在研究 terraform,我在使用 terraform 将 zip 文件从 s3 下载到本地时遇到问题。 使用 zip 文件创建 lambda 函数。任何人都可以帮助解决这个问题。

【问题讨论】:

    标签: amazon-s3 aws-lambda terraform


    【解决方案1】:

    我相信你可以使用aws_s3_bucket_object data_source。这允许您下载 s3 存储桶的内容。示例代码 sn-p 如下所示:

    data "aws_s3_bucket_object" "secret_key" {
        bucket = "awesomecorp-secret-keys"
        key    = "awesomeapp-secret-key"
    }
    
    resource "aws_instance" "example" {
    ## ...
    
    provisioner "file" {
        content = "${data.aws_s3_bucket_object.secret_key.body}"
     }
    }
    

    希望这会有所帮助!

    【讨论】:

    • 感谢您的建议。如果我想要最新版本的 zip 或 jar 文件,如何从 s3 调用最新文件
    • 当文件为 zip 文件时,aws_s3_bucket_object 不起作用。仅当它是 JSON 或纯文本时。
    【解决方案2】:

    如果您想使用 S3 存储桶中的文件创建 lamdba 函数,您可以简单地在资源中引用它:

    resource aws_lambda_function lambda {
      function_name = "my_function"
    
      s3_bucket = "some_bucket"
      s3_key    = "lambda.zip"
    
    ...
    }
    

    【讨论】:

    • 感谢您的建议。如果我想要最新版本的 zip 或 jar 文件,如何从 s3 调用最新文件
    • 如果您在存储桶上启用了版本控制,默认情况下 AWS 会为您提供对象的最新版本
    • 我有点困惑,请在下面找到语法 s3_bucket = "new_bucket" s3_key = "Job_name/folder_name/target/latest.zip" 在具有作业名称、文件夹名称、目标和 zip 文件的 S3 密钥中。那么在这种情况下如何获取最新版本的 zip 文件
    • 您如何将 zip 文件放入您的 s3 存储桶中?
    • 实际上,我们正在与 CodeBuild 进行持续集成,并将工件自动推送到 s3 中。现在 S3 密钥具有作业名称、文件夹名称、目标和 zip 文件。
    猜你喜欢
    • 1970-01-01
    • 2013-04-29
    • 2020-08-15
    • 2021-10-03
    • 1970-01-01
    • 2021-02-25
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多