AWS Lambda | Azure Python库集成

2024-06-06 08:08:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用AWS Lambda和Python进行Azure API调用。 所以我决定为Azure计算管理库创建一个Lambda层。 我从this链接下载了azure-mgmt-compute 17.0.0。 然后将zip添加到Lambda层,当我尝试导入azure库时,我遇到以下错误:

{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'azure'",
  "errorType": "Runtime.ImportModuleError"
}

然后,我决定使用以下命令在虚拟环境中创建一个zip包:

virtualenv v-env;
source v-env/bin/activate;
pip install azure-mgmt-compute;
deactivate;
cd v-env/lib/python3.8/site-packages;
zip -r9 ${OLDPWD}/function.zip .;

不过,运气不好,以前有人实施过类似的措施吗


Tags: lambdaenvawsapi链接错误functionzip
1条回答
网友
1楼 · 发布于 2024-06-06 08:08:53

您可以使用无服务器来实现这一点。创建requirements.txt并添加所有相关包列表。在您的案例中是“azure管理计算”。在serverless.yml的“自定义”部分下,添加以下内容,并在函数中引用lambda层。并运行sls部署阶段开发。这将创建lambda层并在lambda中添加层。您可以直接在lambda中导入依赖库

functions:
  azure_container_instance:
    handler: azure_container_instance/handler.lambda_handler
    layers:
      - Ref: PythonRequirementsLambdaLayer
    timeout: 300

custom:
  pythonRequirements:
    dockerizePip: non-linux
    slim: true
    strip: false
    fileName: ./requirements.txt
    layer:
      name: ${self:provider.stage}-layerName
      description: Python requirements lambda layer
      compatibleRuntimes:
        - python3.8
      licenseInfo: GPLv3
      allowedAccounts:
        - '*'

相关问题 更多 >