代码之家  ›  专栏  ›  技术社区  ›  Aliaksei Maniuk

在部署到AWS Lambda期间,Travis CI在handler\u名称之前添加“index”

  •  0
  • Aliaksei Maniuk  · 技术社区  · 6 年前

    我正在使用Travis ci部署lambda函数。我已经创建了 .travis.yml 文件依据 Lambda deployment ,请参见下面的文件内容。

    language: generic
    deploy:
      provider: lambda
      function_name: MyFunction
      region: us-east-1
      role: correct_roleid
      runtime: python3.6
      handler_name: lambda/testfile.lambda_handler
      access_key_id: key_id
      secret_access_key:
        secure: secret
    

    我的项目的文件夹结构:

    |   .editorconfig
    |   .gitignore
    |   .travis.yml
    \---lambda
            testfile.py
    

    部署后,在 Handler 我拥有的领域 index.lambda/testfile.lambda_handler 价值

    我的问题:

    如何告诉Travis ci使用我在中设置的精确值 。特拉维斯。yml公司 文件

    1 回复  |  直到 6 年前
        1
  •  2
  •   kichik    6 年前

    handler_name 需要是函数名。还应设置 module_name (参见 docs )。

    模块\u名称 :可选。导出处理程序的模块的名称。默认为 index

    因此,请尝试以下操作:

    module_name: lambda/testfile
    handler_name: lambda_handler
    

    如果这不起作用,请尝试创建 __init__.py 在里面 lambda 文件夹如果不行,试着搬家 lambda_handler.py 到根文件夹。您可以使其从文件夹中导入文件,以保持有组织的文件结构。