【问题标题】:Using Terraform to create Lambda function using code from S3 in different regions使用 Terraform 在不同区域使用来自 S3 的代码创建 Lambda 函数
【发布时间】:2018-01-19 00:38:00
【问题描述】:

我之前在 us-east-1 区域创建了一个存储桶,其中包含我想在其他区域部署的 Lambda 代码。当我尝试在 us-west-2 区域中部署相同代码的 Terraform 时,我收到以下错误:

Error creating Lambda function: InvalidParameterValueException: Error occurred while GetObject. S3 Error Code: PermanentRedirect. S3 Error Message: The bucket is in this region: us-east-1. Please use this region to retry the request

我认为无法在 Terraform 的 aws_lambda_function 资源中指定 S3 存储桶的区域。

是否可以使用 Terraform 让一个区域的 S3 存储桶提供可以部署在其他区域的 Lambda 代码?

【问题讨论】:

    标签: amazon-web-services aws-lambda terraform


    【解决方案1】:

    为源指定 S3 存储桶的 Lambda 函数必须与 S3 存储桶位于同一区域。这是因为他们在后台按需从 S3 中提取代码,因为 Lambda 需要部署。跨区域拉取会增加大量延迟,并且现在还会创建跨区域依赖关系。

    您需要将 Lambda 程序包移动到新区域,您可以通过 S3 存储桶上的跨区域复制或简单地将 Lambda 函数包手动上传到其他区域的 S3 存储桶来执行此操作。

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 2022-01-02
      • 1970-01-01
      • 2019-09-30
      • 2020-11-02
      • 2022-11-03
      • 2020-11-12
      • 2021-09-20
      • 2019-03-10
      相关资源
      最近更新 更多