首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用py魅力在本地开发lambda处理程序

使用py魅力在本地开发lambda处理程序
EN

Stack Overflow用户
提问于 2022-09-27 14:13:33
回答 2查看 81关注 0票数 0

我用吡喃在本地开发我的羊驼。结果是,在默认情况下,IDE不识别要启动的处理程序函数,所以每当我在本地测试时,我必须注释掉代码。当它上升到AWS时,再次删除注释和缩进。例如:

代码语言:javascript
运行
复制
    #Local testing
    #def lambda_handler(event, context):
    print(f"test")

    while true:
      print(f"test")

代码语言:javascript
运行
复制
    #Code formatted to run in the cloud
    def lambda_handler(event, context):
      print(f"test")
      
      while true:
        print(f"test")

事实证明,这样做总是需要时间,而且容易出错。它已经碰巧将我在本地测试的代码发送到云端,反之亦然。是否有任何方法使py魅力识别处理程序函数并从那里启动代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-27 16:14:38

这就是我在本地测试Python函数时所做的工作:

代码语言:javascript
运行
复制
is_lambda = os.environ.get("AWS_EXECUTION_ENV") is not None

def lambda_handler(event, context):
   # Lambda code here

if not is_lambda:
    lambda_handler({}, {})

当您在本地运行脚本时,它将检测到它没有部署在AWS上,并使用一些测试上下文/事件数据触发处理程序函数。当您将它部署到AWS Lambda时,它将检测到它正在Lambda上运行,什么也不做,让AWS触发处理程序函数。

票数 1
EN

Stack Overflow用户

发布于 2022-10-02 09:52:23

这方面的最佳实践是将lambda分解为一些可调用的函数,分离测试脚本,并编写一些shell scripts来进行测试。

编写一个bash/powershell脚本,当您只运行这些脚本时,它将调用运行测试程序。测试代码将导入您的lambda代码并使用它。这样,您也可以将事件、上下文作为参数传递。

这还将帮助您实现CI/CD管道,如果测试脚本不抛出它将继续部署的任何错误。这最终会节省你的时间。

谨致问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73869089

复制
相关文章

相似问题

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