当前位置: 首页 > 知识库问答 >
问题:

如何在aws lamdba中运行docker?

赫连俊悟
2023-03-14

是否可以在lambda中运行docker?

错误:响应:{“errorType”:“Runtime.ExitError”,“errorMessage”:“RequestId:d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5错误:运行时已退出,但出现错误:退出状态127”}

请求ID:“d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5”

函数日志: START Request estId: d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5版本:$LATEST /var/task/function.sh: line 22: docker: Command not查找END Request Id: d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5 REPORT Request Id: d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5 Duration: 18437.78 ms计费持续时间: 18500 ms内存大小: 128 MB最大使用内存: 90 MB初始化持续时间: 32.58 ms Request estId: d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5错误:运行时退出错误:退出状态127运行时。退出错误

代码:

 function handler () {
set -e

dstRegion="${1:-}"
repoName="${2:-}"

echo "login source registry"
    $(aws ecr get-login   --no-include-email --region $ECR_SRC_REGION)
    srcImage="$ECR_SRC_REG_ID.dkr.ecr.$ECR_SRC_REGION.amazonaws.com/$repoName:ECR_REPO_TAG"

    echo "pull image"
    docker pull $srcImage
    
    targetRegions=${ECR_TARGET_REGIONS}

    IFS=","; for reg in $targetRegions; do
      check_create_repo $reg $ECR_REPO_NAME

      echo "target region $reg"
      
      targetImage="$ECR_SRC_REG_ID.dkr.ecr.$reg.amazonaws.com/$ECR_REPO_NAME:$ECR_REPO_TAG"

      echo "target Image: $targetImage"
      echo "tagging images"

      docker tag $srcImage $targetImage

      echo "login target registry in $reg"

      aws ecr get-login  --no-include-email --region $reg | bash

      echo "push image to target region $reg"
      echo "pushing $targetImage"

      docker push $targetImage
    done
}

共有1个答案

阎辰钊
2023-03-14

遗憾的是,您无法在lambda环境中运行docker。然而,即使你可以,它的有用性将非常有限,因为lambda最多可以运行15分钟。

如果您想在AWS上运行docker应用程序,通常有两个选项用于此目的:

>

AWS Fargate

后者基本上相当于第一个无服务器,您可以在其中部署docker容器,而不必担心管理/扩展下划线基础架构。

推荐阅读AWS whitepapter:

  • 自2019年起在AWS上实施微服务
 类似资料:
  • Docker-compose.yaml 我怎么能那么做?

  • 问题内容: 我在Docker中安装pipenv: 我收到错误: 如果我跑步 相反,即时通讯收到另一个错误: 但是当我改为执行以下操作时: 这是工作… 于是两个问题:第一:为什么给我这个错误,第二:为什么我必须做之前得到它的工作? 我想使用pipenv创建具有不同python版本和不同依赖版本的虚拟环境。 问题答案: 考虑到您的问题,据我所知,最简单的方法是更新到的最新版本。它仍在开发中,因此很快就

  • 问题内容: 我正在研究Centos7。我有一个运行Jenkins的Docker容器。在那个Jenkins容器中,我必须构建并运行其他Docker容器。但是詹金斯不认识码头工人。我能够执行一个shell并将docker安装在容器中。但是,是否有可能让容器在主机上使用我的docker- engine?如何使用? 在Jenkins-(docker)-容器中安装Docker的最佳选择是什么? 问题答案:

  • 问题内容: 我在EC2实例上。因此没有GUI。 然后我这样做: 太好了,现在一切正常,对吗? 当我运行代码时: 我得到这个: 问题答案: 打开终端并运行此命令 。每次重新启动计算机时都需要运行此命令。如果一切正常,可以将其添加到启动命令中 还要确保在/ etc / environment文件中有一行 然后,运行测试以查看问题是否得到解决。 所有在使用此功能之前,请注意下面来自sardathrion

  • 如何从matlab运行clojure脚本? 我尝试了以下方法:使用jdk 1.7运行matlab,然后调用java 在matlab中,设置类路径并使用clojure编译器 这里有个错误: 当我编写运行clojure的java类时,一切都可以从控制台运行,但不能从matlab运行。请给出建议。

  • 我是新手,所以如果我错过了一些明显的东西,请事先道歉,但是我不知道如何在WebStrem中运行JavaScript。网络Storm留档说只需在浏览器中打开超文本标记语言文件,但这似乎不起作用。不管怎样,一切都在codepen.io. 以下是超文本标记语言(用于简单的天气应用程序): 这是脚本(仍在草稿中,因为它需要扩展以链接到涵盖“天气”所有值的图像): 非常感谢任何帮助!