我用吡喃在本地开发我的羊驼。结果是,在默认情况下,IDE不识别要启动的处理程序函数,所以每当我在本地测试时,我必须注释掉代码。当它上升到AWS时,再次删除注释和缩进。例如:
#Local testing
#def lambda_handler(event, context):
print(f"test")
while true:
print(f"test") #Code formatted to run in the cloud
def lambda_handler(event, context):
print(f"test")
while true:
print(f"test")事实证明,这样做总是需要时间,而且容易出错。它已经碰巧将我在本地测试的代码发送到云端,反之亦然。是否有任何方法使py魅力识别处理程序函数并从那里启动代码?
发布于 2022-09-27 16:14:38
这就是我在本地测试Python函数时所做的工作:
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触发处理程序函数。
发布于 2022-10-02 09:52:23
这方面的最佳实践是将lambda分解为一些可调用的函数,分离测试脚本,并编写一些shell scripts来进行测试。
编写一个bash/powershell脚本,当您只运行这些脚本时,它将调用运行测试程序。测试代码将导入您的lambda代码并使用它。这样,您也可以将事件、上下文作为参数传递。
这还将帮助您实现CI/CD管道,如果测试脚本不抛出它将继续部署的任何错误。这最终会节省你的时间。
谨致问候。
https://stackoverflow.com/questions/73869089
复制相似问题