首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda层-模块‘录入’没有属性‘指令’。

AWS Lambda层-模块‘录入’没有属性‘指令’。
EN

Stack Overflow用户
提问于 2020-09-21 06:59:46
回答 1查看 593关注 0票数 1

我有一个基于python3.7的AWS函数,并试图通过AWS层使用模块口授。我的Python代码如下:

代码语言:javascript
复制
import json
import dicttoxml
def lambda_handler(event, context):
    xml = dicttoxml.dicttoxml({"name": "Foo"})
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

在我的本地机器上,它运行得非常好,但是Lambda给出了如下错误:

代码语言:javascript
复制
{
  "errorMessage": "module 'dicttoxml' has no attribute 'dicttoxml'",
  "errorType": "AttributeError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 4, in lambda_handler\n    xml = dicttoxml.dicttoxml({\"name\": \"Ankur\"})\n"
  ]
}

独裁者层的目录结构如下所示:

dicttoxml.zip > python >录音机> dicttoxml.py

我感到困惑,这里有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-09-24 12:30:58

我用dicttoxml can 创建了自定义层,确认它可以工作

所使用的技术包括最近在AWS博客中描述的停靠工具

因此,对于这个问题,我将其验证如下:

  1. 创建空文件夹,例如mylayer
  2. 转到文件夹并创建requirements.txt文件,其内容为
代码语言:javascript
复制
echo dicttoxml > ./requirements.txt
  1. 运行以下docker命令:
代码语言:javascript
复制
docker run -v "$PWD":/var/task "lambci/lambda:build-python3.7" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.7/site-packages/; exit"
  1. 创建图层为zip:
代码语言:javascript
复制
zip -9 -r mylayer.zip python 
  1. 在AWS控制台中基于mylayer.zip创建lambda层。不要忘记将Compatible runtimes指定为python3.7
  2. 使用以下lambda函数测试lambda中的层:
代码语言:javascript
复制
import dicttoxml

def lambda_handler(event, context):
    
    print(dir(dicttoxml))

该函数正确执行:

代码语言:javascript
复制
['LOG', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', 'collections', 'convert', 'convert_bool', 'convert_dict', 'convert_kv', 'convert_list', 'convert_none', 'default_item_func', 'dicttoxml', 'escape_xml', 'get_unique_id', 'get_xml_type', 'ids', 'key_is_valid_xml', 'logging', 'long', 'make_attrstring', 'make_id', 'make_valid_xml_name', 'numbers', 'parseString', 'randint', 'set_debug', 'unicode', 'unicode_literals', 'unicode_me', 'version', 'wrap_cdata']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63987517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档