docker - 如何在 Docker 容器中运行 AWS Lambda 层?
问题描述
我想运行一个 Docker 容器来查看公共 Lambda 层中的内容。
按照aws sam layers docs使用仅具有 pytorch 层的 sam 应用程序,我生成了 Docker 标签,然后我尝试拉取 Docker 映像,该映像因拉取访问被拒绝/repo 可能需要身份验证而失败。
我确实尝试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'.
.
解决方案
只是一个快速的潜在答案(我没有阅读您提供的链接,因为我不在我的电脑上),因为您提到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,我怀疑这是错误消息完全正确的情况之一,repo 不存在。
推荐阅读
- node.js - *ngFor does not display array data nor any error
- nestjs - 有没有办法可以将 Group By 和 Count 与 Type Orm Repository 一起使用
- javascript - 无法使用 React useState 在渲染函数中访问嵌套对象的数据
- python - 如何确定两个句子是否谈论相似的主题?
- python - NameError 在 python 程序上运行批处理文件
- linux - 通过 crontab 执行 shell 脚本时返回代码 999 错误
- sql-server - 使用 IF EXISTS 时 SSIS SQL 任务无法分配参数值
- ruby-on-rails - 如何在rails after_commit中识别新添加的has_many关联
- web - 如何从 OpenCart 3.0 上的文章中显示菜单?
- objective-c - ObjC -> Swift 转换错误:For-in 循环需要“[AnyHashable:Any]?” 符合“顺序”;你的意思是解开可选的吗?