首页 > 解决方案 > 如何在 AWS lambda 函数中获取 API 网关 URL?

问题描述

我有一个使用 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 的行为。我怎么能这样做?任何帮助,将不胜感激。

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


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

events['headers']['Host'] = '******.execute-api.eu-west-1.amazonaws.com'
events['requestContext']['stage'] = 'test'
events['path'] = '/first'

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

'https://' + events['headers']['Host'] + '/' + events['requestContext']['stage'] + events['path']

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


推荐阅读