【问题标题】:AWS Lambda | Azure Python Library IntergrationAWS Lambda | Azure Python 库集成
【发布时间】:2020-10-06 12:41:29
【问题描述】:

我正在尝试使用 Python 使用 AWS Lambda 进行 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 .;

仍然没有运气,以前有人实现过类似的东西吗?

【问题讨论】:

  • 你为什么要用 Lambda 做这个?为什么不使用 Azure Functions 呢?

标签: python amazon-web-services azure aws-lambda aws-lambda-layers


【解决方案1】:

您可以使用无服务器来完成此操作。创建 requirements.txt 并添加所有依赖包列表。在您的情况下为“azure-mgmt-compute”。在自定义部分下的 serverless.yml 中添加下面并在函数中引用 lambda 层。并运行 sls deploy --stage dev。这将创建 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:
        - '*'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-11
    • 2018-08-02
    • 2020-06-14
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多