gpt4 book ai didi

amazon-web-services - 是否可以从 AWS lambda 直接调用 docker run

转载 作者:行者123 更新时间:2023-12-04 08:00:07 26 4
gpt4 key购买 nike

我有一个已 dockerized 的 Java 独立应用程序。每次将对象放入 S3 存储时,我都想运行此 docker。方法是通过我试图避免的 AWS 批处理来完成。

是否有一种直接且简单的方法可以从 lambda 调用 docker run?

最佳答案

是和否。

您不能执行 docker run 以在 Lambda 调用的上下文中运行容器。但是你可以在ECS上触发一个任务来执行。为此,您需要在 ECS 上设置一个集群,这意味着您需要为至少一个 EC2 实例付费。因此,最好不要使用 Docker,但我对您的应用程序知之甚少,无法判断。

有很多关于如何连接 S3、Lambda 和 ECS 的文章。这是您可能感兴趣的亚马逊的一篇非常深入的文章:

https://aws.amazon.com/blogs/compute/better-together-amazon-ecs-and-aws-lambda/

如果您正在寻找代码,这个存储库实现了上面文章中讨论的内容:

https://github.com/awslabs/lambda-ecs-worker-pattern

这是我们在 Lambda 函数 (Python) 中使用的一个片段,用于从 Lambda 运行 Docker 容器:

result = boto3.client('ecs').run_task(
cluster=cluster,
taskDefinition=task_definition,
overrides=overrides,
count=1,
startedBy='lambda'
)

我们传入我们想要运行容器的 cluster 的名称,以及定义运行哪个容器的任务定义,它需要的资源等等。 overrides 是一个字典/ map ,其中包含您想要在任务定义中覆盖的设置,我们用它来指定我们想要运行的命令(即 docker run 的参数)。这使我们能够使用相同的 Lambda 函数在 ECS 上运行许多不同的作业。

希望这为您指明了正确的方向。

关于amazon-web-services - 是否可以从 AWS lambda 直接调用 docker run,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44696264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com