如何在Docker容器中运行AWS Lambda层?

时间:2019-06-06 19:08:00

标签: docker aws-lambda aws-lambda-layers

我想运行一个Docker容器以查看公共Lambda层中的内容。

aws sam layers docs之后,使用仅带pytorch层的sam应用程序,我生成了Docker标签,然后尝试拉Docker镜像,但由于拉取访问被拒绝/回购而失败,这可能需要认证。

我仍然尝试aws ecr get-login --no-include-email进行正确的身份验证,尽管仍然无法访问图像。

所以我认为可能是我无权拉出lambda层的图像或该图像不存在。我不清楚

或者,最好下载公共Lambda层,然后我可以使用https://github.com/lambci/docker-lambda进行检查

更多关于我尝试过的内容

所以我想调查的Lambda层是:

arn:aws:lambda:eu-west-1:934676248949:layer:pytorchv1-py36:1

我生产的docker标签是:

python3.6-0ffbca5374c4d95e8e10dbba8

然后我尝试使用以下方法拉取Docker映像:

docker run -it --entrypoint=/bin/bash samcli/lambda:python3.6-0ffbca5374c4d95e8e10dbba8 -i
docker run -it --entrypoint=/bin/bash <aws_account_id>.dkr.ecr.<region>.amazonaws.com/samcli/lambda:python3.6-0ffbca5374c4d95e8e10dbba8 -i

两者均因错误而失败:

docker: Error response from daemon: pull access denied for samcli/lambda, repository does not exist or may require 'docker login'.

1 个答案:

答案 0 :(得分:1)

考虑到aws ecr get-login --no-include-email,我想假设您正在尝试从AWS的Docker存储库中提取Docker映像,这是一个潜在的快速答案(由于我不在电脑上,所以我没有阅读您提供的链接)服务。

具有默认配置的行docker run -it --entrypoint=/bin/bash samcli/lambda:python3.6-0ffbca5374c4d95e8e10dbba8 -i将查看docker hubs存储库。如果您尝试在AWS中提取docker映像,则可能会更像docker run -it --entrypoint=/bin/bash aws_account_id.dkr.ecr.region.amazonaws.com/samcli/lambda:python3.6-0ffbca5374c4d95e8e10dbba8 -i(同样不是说cammand可以工作,而是类似它与aws repo登录命令一起使用)。

由于https://hub.docker.com/samcli/lambda是404,我怀疑这是错误消息完全正确的情况之一,因此回购不存在。