Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 部署aws lambda函数时无法访问我的注册表中的ecr存储库_Amazon Web Services_Docker_Aws Lambda_Amazon Ecr - Fatal编程技术网

Amazon web services 部署aws lambda函数时无法访问我的注册表中的ecr存储库

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 供应商: 名称

问题陈述:

我试图使用一个构建的docker容器映像,并将其用作AWS lambda函数的源。然而,每当我构建并部署lambda函数时,每次都会遇到这个错误

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>