Amazon web services 部署aws lambda函数时无法访问我的注册表中的ecr存储库
问题陈述: 我试图使用一个构建的docker容器映像,并将其用作AWS lambda函数的源。然而,每当我构建并部署lambda函数时,每次都会遇到这个错误Amazon web services 部署aws lambda函数时无法访问我的注册表中的ecr存储库,amazon-web-services,docker,aws-lambda,amazon-ecr,Amazon Web Services,Docker,Aws Lambda,Amazon Ecr,问题陈述: 我试图使用一个构建的docker容器映像,并将其用作AWS lambda函数的源。然而,每当我构建并部署lambda函数时,每次都会遇到这个错误 The repository with name 'xxxxxxxxx' does not exist in the registry with id '########'. 我做了一些健全性检查,以确保我的serverless.yml文件创建正确,拼写正确,并且该存储库实际上存在于ECR中 serverless.yml 供应商: 名称
The repository with name 'xxxxxxxxx' does not exist in the registry
with id '########'.
我做了一些健全性检查,以确保我的serverless.yml文件创建正确,拼写正确,并且该存储库实际上存在于ECR中
serverless.yml
供应商:
名称:aws
运行时:python3.8
阶段:${env:BRANCH_NAME}
地区:美国西部-2
角色:arn:aws:iam:::角色/当前角色
专有网络:
SecurityGroupId:
-${env:SG_ID}
子网:
-${env:SUBNET_ID}
追踪:
拉姆达:是的
环境:
地区名称:us-west-1
PYTHONPATH:“/var/task/packages:/var/runtime”
S5_队列_URL:${env:S5_队列_URL}
机密名称:${env:SECRET\u NAME}
IAM声明:
-效果:允许
行动:
-“ecr:SetRepositoryPolicy”
-“ecr:GetRepositoryPolicy”
参考资料:'arn:aws:ecr:us-west-2:'
功能:
职能1:
图片:'##########dkr.ecr.us-west-2.amazonaws.com/xxxxxxxxx/directory:tag'
但是,由于某些原因,无论发生什么更改,我仍然无法访问此存储库
我已经进入了serverless.yml文件。起初,我认为这可能是权限问题,但我认为我声明的权限没有任何问题……有人能帮忙吗?将运行时从
python3.8
更改为提供的,请参见基于错误,您的帐户和您正在查找的区域中没有此类注册表
尽管如此,您的图像URI看起来有点奇怪:
'#######.dkr.ecr.us-west-2.amazonaws.com/xxxxxxxxx/directory:tag'
如果xxxxxxxx是您的存储库(注册表)名称,那么我不确定该目录来自何处。如果目录是您的存储库名称,那么您需要省略xxxxxxxx。您的政策声明中的ARN具有相同的内容
如您所说,如果您已确保存储库确实存在于您的帐户中,请复制它的图像URI,并将其与serverless.yml中的内容进行比较
通常可见的ECR图像URI构造为:
<account_ID>.dkr.ecr.<region>.amazonaws.com/<repo_name>:tag
:
功能:
某些功能:
图片:.dkr.ecr..amazonaws.com/@
我们只能使用摘要访问图像。可能是无服务器版本的问题,但我对此表示怀疑。
functions:
someFunction:
image: <account>.dkr.ecr.<region>.amazonaws.com/<repository>@<digest>