【问题标题】:Serverless: Usage of layers from other AWS accounts, how to do it?无服务器:使用来自其他 AWS 账户的层,怎么做?
【发布时间】:2020-04-10 04:53:26
【问题描述】:

我正在尝试部署和使用无服务器函数,该函数使用由 AWS 创建的层,其中包括 NumPy and SciPy

我的 Serverless.yml 文件的相关部分:

functions:
  pricing:
    handler: handler.pricing
    layers:
      - arn:aws:lambda:eu-west-1:399891621064:layer:AWSLambda-Python36-SciPy1x:2

当我运行 sls deploy 然后检查 Lambda 控制台时,我可以看到该层在我的函数旁边,但是当我尝试调用我的 lambda 时,我得到了错误:

[ERROR] Runtime.ImportModuleError: Unable to import module 'handler': No module named 'numpy'

我的 handler.py 文件的相关行:

import numpy as np

编辑: 更奇怪的是,在 Lambda 控制台中,如果我删除了对 AWS 发布层的(看起来完全相同的)引用,然后选择“添加层”按钮并选择完全相同的层(相同的 ARN),一切作品。

【问题讨论】:

    标签: python-3.x aws-lambda serverless-framework serverless


    【解决方案1】:

    好的,所以我已经设法让它工作了,我认为问题是 python 版本不匹配,我用 3.6 引用了基于 arn 的 scipy 库,而在我的 serverless.yml 文件中我引用了 3.7。

    下一步是弄清楚如何获得

    无服务器调用本地 -f myfunction --docker

    在我的虚拟环境中实际工作,以便我可以在本地运行和测试它。

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 2020-04-10
      • 2019-05-01
      • 2022-07-27
      • 2019-07-21
      • 1970-01-01
      • 2020-06-25
      • 2022-12-17
      • 1970-01-01
      相关资源
      最近更新 更多