【问题标题】:Why might an AWS Lambda function run in docker-lambda, but crashes on AWS?为什么 AWS Lambda 函数可以在 docker-lambda 中运行,但在 AWS 上崩溃?
【发布时间】:2021-06-25 00:54:01
【问题描述】:

有一组名为 docker-lambda 的 Docker 映像可用,旨在尽可能接近地复制 AWS Lambda 环境。它是第三方,但在某种程度上得到了亚马逊的认可,并在他们的SAM Local 产品中使用。我编写了一个调用 ELF 二进制文件的 Lambda 函数,当我在具有与 AWS Lambda 环境相同的运行时和内核的 docker-lambda 容器中运行它时,它可以工作。当我在 AWS Lambda 上运行相同的函数时,该方法神秘地崩溃且没有输出。我已经为函数提供了比进程可能使用的更多 RAM,并且依赖项显然存在,因为我知道在不访问二进制文件的情况下实际上不可能调试它,但是有任何常见/可能的原因吗?正在发生吗?

另外,有什么技术可以调试这样的东西吗?在 Docker 中运行时,我可以添加一个 --cap-add SYS_PTRACE 标志来调用使用 strace 的命令并查看可能导致错误的原因。我不知道 AWS Lambda 上的等效调试技术。

【问题讨论】:

  • 您是否打开了对 CloudWatch 的日志记录?里面有什么用吗?
  • 如果您可以共享一些最小的示例代码,这可能会很有用 - 失败的原因可能有多种。

标签: amazon-web-services aws-lambda executable


【解决方案1】:

愿意打赌 AWS Lambda 执行环境不能很好地与第三方图像配合使用。我对亚马逊的amazon/aws-lambda-python:3.8 图像没有任何问题。

我能想到的唯一另一件事是调整 lambda 的超时时间。

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 2021-11-01
    • 2020-06-13
    • 1970-01-01
    • 2021-12-17
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多