MGu*_*ler 6 python amazon-web-services docker aws-lambda
我尝试包装一个部署到 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": []
}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
在本地运行容器的命令:
docker run -e AWS_SECRET_ACCESS_KEY=XXX -e AWS_ACCESS_KEY_ID=YYY -p 9000:8080 palmid-lambda:latest
Run Code Online (Sandbox Code Playgroud)
本地运行的输出:
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
Run Code Online (Sandbox Code Playgroud)
本地调用 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"}'
Run Code Online (Sandbox Code Playgroud)
基础镜像构建: 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
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |