调用使用Chali编写的lambda函数中的特定路由

2024-04-24 16:56:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Chalice的新手,我尝试在python脚本中使用boto3调用aws lambda。我要知道如何在那辆兰姆达车上叫一条特定的“路线”。可能在事件中设置客户端上下文或其他内容?在

python脚本可以调用lambda函数,但不确定如何在lambda中调用(传入)路由。在

代码在里面应用程序副本公司名称:

@app.route('/dosomething', methods=['GET'], cors=True)
def doSomething():
    results = somethingWasDone()
    return {"result": results}

所以如果lambda的名字是myLambda,我想调用myLambda,告诉它触发上面的dosomething路由代码。谢谢


Tags: lambda代码脚本aws客户端路由内容事件
1条回答
网友
1楼 · 发布于 2024-04-24 16:56:46

要调用任何Lambda函数,需要使用lambda:InvokeAPI调用。在AWS CLI中,它通过aws lambda invoke调用;从boto3调用它通过boto3.client('lambda').invoke(**kwargs)。在

最相关的论点是:

  • 函数名。要调用的函数的名称(在CLI上为 function-name
  • 调用类型。确定是调用API同步(RequestResponse)还是异步(Event)(CLI: invocation-type
  • 有效载荷。成为传递给Lambda处理程序(CLI: payload)的event参数并可以作为文件URL提供的数据。E、 g., payload file://./relative/path.json

另外,当通过aws lambda invoke调用时,需要指定一个输出文件,其中将写入Lambda的结果。在

参见:

当使用Chalice或任何实现类似“web路由”行为的框架时,只调用所需的路由需要您提供一个事件,该事件看起来像是由API网关或应用程序负载平衡器生成的事件。一、 例如,如果有N个路由,框架通常只部署一个Lambda函数,并使用事件中编码的HTTP信息来确定在函数中调用哪个路由。在

参见:

最小事件文件(payload.json)可以如下所示。特别相关的是pathresource参数。您可能需要使resource与Chalice为您生成的API网关中的值匹配。在

{
  "path": "/",
  "resource": "/",
  "queryStringParameters": {},
  "headers": {},
  "httpMethod": "GET",
  "requestContext": {
    "httpMethod": "GET"
  },
  "body": {}
}

生成的CLI调用如下所示:

^{pr2}$

希望有帮助。在

相关问题 更多 >