如何在 AWS lambda 函数中获取 API 网关 url?

ABC*_*BCD 5 amazon-web-services aws-lambda aws-api-gateway

我有一个场景,我使用 API URL 来调用 lambda 函数。调用 lambda 函数后,我想要 lambda 函数中的特定 URL。

https://********.execute-api.eu-west-1.amazonaws.com/test/first

https://********.execute-api.eu-west-1.amazonaws.com/test/second

从这个 URL,我想要在 lambda 中命名为 first 或 second 的资源。这里的测试是我部署 API 的阶段名称。我创建了多个资源,我想更改 lambda 的行为。我怎么能这样做?任何帮助,将不胜感激。

Tom*_*Tom 11

您可以根据 Lambda 函数events变量中的值重建完整 url 。

events['headers']['Host'] = '******.execute-api.eu-west-1.amazonaws.com'
events['requestContext']['stage'] = 'test'
events['path'] = '/first'
Run Code Online (Sandbox Code Playgroud)

所以总的来说,你可以https://******.execute-api.eu-west-1.amazonaws.com/test/first把它们加在一起:

'https://' + events['headers']['Host'] + '/' + events['requestContext']['stage'] + events['path']
Run Code Online (Sandbox Code Playgroud)

有关您可以从 events 变量中获得的其他信息的详细信息,请参阅AWS 文档的Lambda 代理集成部分。