gpt4 book ai didi

amazon-web-services - AWS Lambda AP 网关处理不同的路由

转载 作者:行者123 更新时间:2023-12-03 08:22:41 25 4
gpt4 key购买 nike

我有 3 个 Webhook 调用我的 API 网关,而 API 网关又调用我的 Lambda 函数。

  1. url/webhook/....

我希望每个 webhook 调用自己的 python 方法

 startDelivery --> def start_delivery(event, context):
UpdateStatus--> def update_status(event, context):
EndDelivery--> def end_delivery(event, context):

我知道很可能有一种方法将通过“url/webhook”执行,该方法调用适当的 python 方法。def Process_task 调用三个之一

建立这种结构的理想方式是什么?

为 Webhooks 和 API Gateway 创建不同的 url 捕获它并以某种方式调用处理程序?

url/webhook/start
url/webhook/status
url/webhook/end

为每个 webhook 发送不同的查询字符串?并在lambda中解析查询字符串并调用正确的python方法?

最佳答案

请记住,Lambda 函数有一个处理程序(=> 1 次调用 = 调用 1 个方法)。

您可以通过执行以下操作之一来实现 1 条路线 <-> 1 方法:

  1. 您有一个由 3 个 APIGW 路由触发的 Lambda 函数。然后,您可以向函数添加一个简单的路由器,用于解析事件['path']并调用适当的方法。
def lambda_handler(event, context):
path = event['path']

if path == '/webhook/start':
return start_delivery(event, context)
elif path == '/webhook/status':
return update_status(event, context)
elif path == '/webhook/end':
return end_status(event, context)
else:
return { "statusCode": 404, "body": "NotFound" }
  • 按路线创建 1 个 Lambda 函数:
    • webhook/start 使用 start_delivery 作为处理程序触发 StartDelivery Lambda 函数
    • webhook/status 触发 UpdateDelivery Lambda 函数,并将 update_delivery 作为处理程序
    • webhook/end 使用 end_delivery 作为处理程序触发 EndDelivery Lambda 函数

    您可以使用基础设施即代码(Cloudformation)轻松管理这些功能(SAM:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html)

    关于amazon-web-services - AWS Lambda AP 网关处理不同的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67381450/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com