You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS::Lambda::Function指定ImageUri触发CloudFormation错误如何解决

问题触发原因
  • 核心原因:AWS Lambda目前不支持直接引用ECR Public(公开ECR画廊)中的镜像作为函数的容器镜像,仅支持引用与Lambda函数同AWS账户、同部署区域的私有ECR仓库中的镜像。
  • 次要排查点:即使镜像移到私有ECR后,也需要确认镜像符合Lambda容器镜像规范(内置Lambda运行时接口、正确配置ENTRYPOINT/CMD)、镜像架构与模板中声明的arm64架构匹配。
修复步骤
  1. 拉取公开ECR镜像到本地:
docker pull public.ecr.aws/g9c9m7n7/aws-cost-anomaly-slack-notifier:latest
  1. 在你要部署Lambda的AWS区域创建私有ECR仓库,给本地镜像打私有仓库标签,替换下方占位符为你自己的账户信息、区域信息、仓库名:
docker tag public.ecr.aws/g9c9m7n7/aws-cost-anomaly-slack-notifier:latest <AWS账户ID>.dkr.ecr.<部署区域>.amazonaws.com/<自定义仓库名>:latest
  1. 登录你的私有ECR后推送镜像:
aws ecr get-login-password --region <部署区域> | docker login --username AWS --password-stdin <AWS账户ID>.dkr.ecr.<部署区域>.amazonaws.com
docker push <AWS账户ID>.dkr.ecr.<部署区域>.amazonaws.com/<自定义仓库名>:latest
  1. 修改CloudFormation模板中的ImageUri为你私有ECR的镜像地址:
Code:
  ImageUri: <AWS账户ID>.dkr.ecr.<部署区域>.amazonaws.com/<自定义仓库名>:latest
  1. 确认Lambda执行角色包含以下ECR拉取权限:
{
  "Effect": "Allow",
  "Action": [
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage",
    "ecr:BatchCheckLayerAvailability"
  ],
  "Resource": "*"
}

内容的提问来源于stack exchange,提问作者Bruno Schaatsbergen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:15:00