CloudFormation在eu-west-1部署Lambda时出现S3 PermanentRedirect错误如何解决
AWS CloudFormation跨区部署Lambda报错解决方案
报错根因
你使用的CloudFormation模板中,两处Lambda函数的部署包均硬编码指定了S3桶aws-workshop-gitflow,该桶的实际部署区域为us-east-1。
AWS Lambda服务的部署包拉取规则要求:存储Lambda代码包的S3桶必须与Lambda函数本身处于同一AWS区域,否则Lambda服务无法处理S3返回的区域重定向响应,就会抛出你遇到的PermanentRedirect错误。你在us-east-1部署时无报错,正是因为桶和Lambda处于同一区域,无需跨区访问。
解决办法
可根据你的部署需求选择任意一种方案:
- 方案一:直接在
us-east-1区域部署该工作坊的所有资源,该场景你已经验证可正常完成。 - 方案二:如果必须在
eu-west-1区域部署,按如下步骤操作即可:- 先从
us-east-1区域的aws-workshop-gitflow桶中下载两个部署包:pipeline-create.zip、pipeline-delete.zip - 在
eu-west-1区域自行创建一个S3存储桶,将下载的两个zip包上传到该桶 - 修改CloudFormation模板中两个Lambda资源下的
S3Bucket取值,替换为你刚才在eu-west-1创建的S3桶名称 - 确认Lambda执行角色具备该S3桶的读权限,重新提交CloudFormation模板部署即可正常完成
- 先从
内容的提问来源于stack exchange,提问作者Youcef LAIDANI
相关产品推荐
相关产品推荐

