【问题标题】:How to Write an AWS Python3 Lambda Function using a zip file on Windows OS如何在 Windows 操作系统上使用 zip 文件编写 AWS Python3 Lambda 函数
【发布时间】:2018-01-12 01:23:55
【问题描述】:

我到处寻找有关使用 Windows 操作系统上的 Lambda 管理控制台从 zip 文件创建 python3 lambda 函数的教程或帮助。不幸的是,我运气不好。这就是我所在的地方...

按照此处 AWS 网站上的说明进行操作:https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

  • 我在桌面上创建了一个名为“APP”的文件夹。在该文件夹中,我在“App”的根级别保存了一个名为“twilio_test.py”的python代码文件。

我的 Python 代码:

import twilio

def lambda_handler(event, context):
    account_sid = '##########################'
    auth_token = '###########################'

    client = Client(account_sid, auth_token)

    message = client.messages.create(
            to = '###########',
            from_ = '###########',
            body = "Test")
    return("success")
  • 因为我使用的是twilio 库,所以我根据上面链接中的说明将它安装在我的“APP”文件夹的根目录中。说明特别指出,“使用 pip 安装任何库。同样,您将这些库安装在目录的根级别。”:

pip install twilio -t \path\to\directory

  • 然后我根据引用的指令压缩“APP”的内容,“压缩 project-dir 目录的内容,这是您的部署包。压缩目录内容,而不是目录。”这将创建一个名为“twilio_test”的 zip 文件。

  • 然后我转到 AWS lambda 管理控制台,上传 zip 文件“twilio_test”。

这就是我感到困惑的地方。处理程序应该是什么?

到目前为止,我是否正确地完成了所有事情?如果没有,安装 twilio、压缩文件然后在 AWS lambda 中使用它的最佳方法是什么?

虽然说 AWS lambdas 天生就很难使用是不恰当的,但我可以说我天生就很困惑。

【问题讨论】:

  • 查看this answer,这可能会解决您的问题。还有handlerpython_file.entry_function 所以它会是twilio_test.lambda_handler
  • 谢谢@sid8491。这个答案更加清晰。我一直在按照正确的步骤操作,但正在使用 anaconda 进行 twilio 的 pip 安装。我改为使用 powershell 并且效果很好。
  • 请看下面我的回答。这不是 anaconda 与 powershell 的问题。我需要指定完整的文件路径。

标签: python amazon-web-services aws-lambda twilio python-3.6


【解决方案1】:

您应该将处理程序设置为python_file_name.function_name。所以在你的情况下应该是twilio_test.lambda_handler

来自documentation

...您在创建 Lambda 函数时指定要用作处理程序的 Python 代码中的函数名称。有关使用控制台创建 Lambda 函数的说明,请参阅Create a Simple Lambda Function。在此示例中,处理程序是 hello_python.my_handler (file-name.function-name) ...

【讨论】:

  • 我收到一条错误消息,提示“无法导入模块 twilio_test”,并且收到一条错误消息,提示没有名为“twilio”的模块
  • 确保 twilio 文件夹位于 zip 文件的根目录中。
  • 使用相同的 pip install 命令?我试过了,它给出了同样的错误
  • 您应该将 zip 结构添加到问题中。不清楚你在做什么。
【解决方案2】:

最初我认为使用 anaconda 进行 pip 安装是问题所在,所以我使用了 powershell。这行得通,但只是因为我指定了完整的文件路径,正如@sid8491 指出的here

我原来用的:

<C:\ProgramData\Anaconda3> C:\Users\userName> pip install twilio -t \Desktop\APP

哪个没用

但使用:

<C:\ProgramData\Anaconda3> C:\Users\userName> pip install twilio -t  C:\Users\userName\Desktop\APP

成功了

这将在 powershell 或 anaconda 中工作

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2016-05-02
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多