首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将AWS Lambda函数转换为容器

将AWS Lambda函数转换为容器
EN

Stack Overflow用户
提问于 2019-06-05 00:59:20
回答 1查看 902关注 0票数 1

我目前有一堆AWS Lambda函数,并希望将它们分别放在容器(最好是Docker)中,以便与当前的CICD管道集成。在像Fargate这样的Amazon服务中旋转这些容器是完全可以的--重要的是它必须在容器中旋转。我找到的最接近的东西是亚马逊的this repo,它可以将图像转换为Lambdas,尽管这与我正在寻找的相反。

这项任务可能吗?如果可能,那么最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-06-05 08:55:25

在幕后,Lambda“函数”是一个Python脚本,它侦听调用事件并调用实际的处理函数。这意味着您可以很容易地使用标准Python“脚本”代码调用该函数:

代码语言:javascript
复制
if __name__ == "__main__":
    args = # this is the tricky part
    ctx  = # some dict that looks like what Lambda expects
    handler(args, ctx)

这两个参数只是dicts,所以如果您可以用看起来正确的东西填充它们,那么您可以将整个内容包装在一个容器中,并将其部署到ECS或批处理,或者您自己的Docker守护进程。

问题是如何填充它们,这取决于lambda函数做什么--您没有说过--以及它们是如何被调用的--您也没有说过。

您可以使用命令行参数。例如,如果您的lambda是用来响应S3 PutObject操作的,那么您真正需要的就是存储桶和键名。在此基础上,您可以很容易地创建一个虚拟的S3 invocation event,对所有其他字段使用假值。

如果您调用Lambda来响应SQS消息,那就更简单了:您的"main“处理程序进入一个轮询SQS的循环,并重新格式化它从队列中取出的消息。

其他事件源将变得困难得多。对所有调用使用SQS,并简单地将一个完全形成的事件消息传递到队列中可能是有意义的(取决于您这样做的原因)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56448344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档