【发布时间】:2019-09-10 22:17:06
【问题描述】:
我是 Chalice 的新手,我正在尝试在 python 脚本中使用 boto3 调用 aws lambda。我需要知道如何在该 lambda 中调用特定的“路线”。也许在事件中设置客户端上下文或其他内容?
python 脚本可以调用 lambda 函数,但不确定我如何调用(传入)该 lambda 中的路由。
app.py 中的代码:
@app.route('/dosomething', methods=['GET'], cors=True)
def doSomething():
results = somethingWasDone()
return {"result": results}
因此,如果 lambda 的名称是 myLambda,我想调用 myLambda 并告诉它触发上述代码以进行 dosomething 路由。谢谢
【问题讨论】:
-
我认为你必须制作一个测试事件并发送测试事件。测试事件表单应类似于 AWS API Gateway 事件表单。 API 网关事件有一个
path参数,这是关键。 -
@Lamanus 有答案。请注意,像 Chalice 这样的框架提供了实际的 Lambda 入口点,然后使用
route装饰器来决定如何处理传入事件(API 网关或 ALB)。有关示例事件,请参阅 docs.aws.amazon.com/lambda/latest/dg/with-on-demand-https.html 和 docs.aws.amazon.com/lambda/latest/dg/services-alb.html。 -
@Lamanus 您有链接或其他示例代码吗?我找不到任何东西,也无法使用 api gw 客户端,因为我想直接调用 lambda。
-
@bimsapi 我找不到任何调用 lambda 并在链接中传递路径的代码。
-
我想我没听懂这个问题。通常,您通过 HTTP 调用 Chalice 应用程序的 Lambda。请参阅 chalice.readthedocs.io/en/latest/quickstart.html 中的
curl示例。chalice deploy为 HTTP 和 Lambda 创建一个 API 网关。您向网关提交 HTTP 请求,网关将 HTTP 协议元素映射到传递给 Chalice Lambda 的事件中的字段,后者决定调用哪个路由/函数。如果您直接通过 boto 而不是 HTTP 调用 Lambda,您可以通过提供其事件的等效项(这些链接指向的内容)来模拟 API 网关。
标签: python amazon-web-services aws-lambda boto3 chalice