gpt4 book ai didi

python - 容器 (python) 中的 AWS Lambda 可在本地运行但未部署

转载 作者:行者123 更新时间:2023-12-04 13:51:10 25 4
gpt4 key购买 nike

我尝试包装部署到 docker 容器的基于 R 的应用程序。我将基本镜像更改为 lambda/python3.9 并添加了另一个具有自己的 Dockerfile 的应用程序。这包含一个简单的 python 脚本作为函数的处理程序。在这个处理程序中,我调用代码来运行 R 脚本并将结果上传到 S3。现在当我在本地测试时一切正常。但是,当我将镜像推送到 ECR 并将容器部署为 Lambda 函数时,我收到以下错误:

{
"errorMessage": "Unable to import module 'app': No module named 'app'",
"errorType": "Runtime.ImportModuleError",
"requestId": "1a7fa818-62e4-4374-8318-625b15e2ae8a",
"stackTrace": []
}
AWS 调用的更多日志:
2021-09-25T17:11:32.570+02:00   START RequestId: 1a7fa818-62e4-4374-8318-625b15e2ae8a Version: $LATEST
2021-09-25T17:11:32.571+02:00 [ERROR] Runtime.ImportModuleError: Unable to import module 'app': No module named 'app' Traceback (most recent call last):
2021-09-25T17:11:32.574+02:00 END RequestId: 1a7fa818-62e4-4374-8318-625b15e2ae8a
2021-09-25T17:11:32.574+02:00 REPORT RequestId: 1a7fa818-62e4-4374-8318-625b15e2ae8a Duration: 1.40 ms Billed Duration: 2395 ms Memory Size: 3200 MB Max Memory Used: 48 MB Init Duration: 2393.47 ms
在本地运行容器的命令:
 docker run -e AWS_SECRET_ACCESS_KEY=XXX -e AWS_ACCESS_KEY_ID=YYY -p 9000:8080 palmid-lambda:latest
本地运行的输出:
EY=XXXX -e AWS_ACCESS_KEY_ID=YYYY -p 9000:8080 palmid-lambda:latest
time="2021-09-25T14:29:42.318" level=info msg="exec '/var/runtime/bootstrap' (cwd=/home/palmid, handler=)"
time="2021-09-25T14:29:47.899" level=info msg="extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory"
time="2021-09-25T14:29:47.899" level=warning msg="Cannot list external agents" error="open /opt/extensions: no such file or directory"
START RequestId: 1b867a67-e778-4418-9139-ff1123331b34 Version: $LATEST
... application logs

在本地调用 Lambda 函数的命令:
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{ "sequence": ">SRR9968562_waxsystermes_virus_microassembly\nPIWDRVLEPLMRASPGIGRYMLTDVSPVGLLRVFKEKVDTTPHMPPEGMEDFKKASKEVE\nKTLPTTLRELSWDEVKEMIRNDAAVGDPRWKTALEAKESEEFWREVQAEDLNHRNGVCLR\nGVFHTMAKREKKEKNKWGQKTSRMIAYYDLIERACEMRTLGALNADHWAGEENTPEGVSG\nIPQHLYGEKALNRLKMNRMTGETTEGQVFQGDIAGWDTRVSEYELQNEQRICEERAESED\nHRRKIRTIYECYRSPIIRVQDADGNLMWLHGRGQRMSGTIVTYAMNTITNAIIQQAVSKD\nLGNTYGRENRLISGDDCLVLYDTQHPEETLVAAFAKYGKVLKFEPGEPTWSKNIENTWFC\nSHTYSRVKVGNDIRIMLDRSEIEILGKARIVLGGYKTGEVEQAMAKGYANYLLLTFPQRR\nNVRLAANMVRAIVPRGLLPMGRAKDPWWREQPWMSTNNMIQAFNQIWEGWPPISSMKDIK\nYVGRAREQMLDST", "hash": "132xx"}'
基本图像构建于: https://github.com/ababaian/palmid
使用以下 Python 代码构建: https://github.com/ababaian/palmid-lambda

最佳答案

我无法让我的容器运行。但我决定采用这种方法,我使用 amazonlinux:2 作为基础图像,然后添加 python 的东西,现在它可以工作了。似乎 R 的东西有一些干扰亚马逊库的依赖项。通过使用这种方法,我遇到了关于我所依赖的库的另一个问题,我将其修复如下:https://github.com/aws/aws-lambda-python-runtime-interface-client/issues/24

关于python - 容器 (python) 中的 AWS Lambda 可在本地运行但未部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69327629/

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