pyF*_*ler 5 python-3.x docker aws-lambda aws-lambda-containers snowflake-connector
我在尝试安装 Snowflake python 连接器时经历了一段非常糟糕的时光。这是一个令人沮丧的事情,但我终于成功地使用完整的 Ubuntu 基础 Docker 镜像来安装它。但我现在不知道如何让 AWS lambda 包装器工作。
\n项目结构。
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Dockerfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 app.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 entry.sh\nRun Code Online (Sandbox Code Playgroud)\n入口.sh
\n#!/bin/sh\nif [ -z "${AWS_LAMBDA_RUNTIME_API}" ]; then\n\n exec /usr/bin/aws-lambda-rie /usr/local/bin/python3 -m awslambdaric $1\nelse\n exec /usr/local/bin/python3 -m awslambdaric $1\nfi\nRun Code Online (Sandbox Code Playgroud)\nDockerfile
\nARG FUNCTION_DIR="/home/app/"\n\nFROM ubuntu:20.04\nRUN apt-get update && apt-get install -y \\\n python3 \\\n python3-pip\nARG FUNCTION_DIR\nRUN mkdir -p ${FUNCTION_DIR}\nRUN pip install -U wheel pip --target ${FUNCTION_DIR}\nRUN pip install snowflake-connector-python==2.7.1 --target ${FUNCTION_DIR}\nRUN pip install awslambdaric --target ${FUNCTION_DIR}\nWORKDIR ${FUNCTION_DIR}\nADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie /usr/bin/aws-lambda-rie\nCOPY app/* ${FUNCTION_DIR}\nCOPY entry.sh /\nRUN chmod 755 /usr/bin/aws-lambda-rie /entry.sh\nENTRYPOINT [ "/entry.sh" ]\nCMD [ "app.handler" ]\nRun Code Online (Sandbox Code Playgroud)\n应用程序.py
\nimport sys\nimport snowflake.connector\n\ndef handler(event, context):\n print(dir(snowflake.connector.connect))\n print(f"\\nEvent: {event}\\n")\n print(f"\\nContext: {context}\\n")\n return f"Hello world! {sys.version}"\nRun Code Online (Sandbox Code Playgroud)\n命令
\ncurl -X POST \\\n "localhost:8080/2015-03-31/functions/function/invocations" \\\n -d '{"foo": "bar"}'\nRun Code Online (Sandbox Code Playgroud)\n以及错误:
\n10 Dec 2021 06:31:09,383 [INFO] (rapid) exec '/usr/local/bin/python3' (cwd=/home/app, handler=app.handler)\n10 Dec 2021 06:31:22,860 [INFO] (rapid) extensionsDisabledByLayer(/opt/disable-extensions-jwigqn8j) -> stat /opt/disable-extensions-jwigqn8j: no such file or directory\n10 Dec 2021 06:31:22,860 [WARNING] (rapid) Cannot list external agents error=open /opt/extensions: no such file or directory\nSTART RequestId: 57f0b49d-f2b3-4f25-96fa-db287d01ca62 Version: $LATEST\n10 Dec 2021 06:31:22,860 [WARNING] (rapid) First fatal error stored in appctx: Runtime.InvalidEntrypoint\n10 Dec 2021 06:31:22,860 [ERROR] (rapid) Init failed error=fork/exec /usr/local/bin/python3: no such file or directory InvokeID=\n10 Dec 2021 06:31:22,860 [WARNING] (rapid) Reset initiated: ReserveFail\n10 Dec 2021 06:31:22,861 [WARNING] (rapid) Cannot list external agents error=open /opt/extensions: no such file or directory\n10 Dec 2021 06:31:22,861 [WARNING] (rapid) First fatal error stored in appctx: Runtime.InvalidEntrypoint\nRun Code Online (Sandbox Code Playgroud)\n
使用此入口文件:
#!/bin/sh
if [ -z "${AWS_LAMBDA_RUNTIME_API}" ]; then
exec /usr/bin/aws-lambda-rie python3 -m awslambdaric $1
else
exec python3 -m awslambdaric $1
fi
Run Code Online (Sandbox Code Playgroud)
注意:我删除了 python3 的路径
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |