【问题标题】:How to get API gateway url in AWS lambda function?如何在 AWS lambda 函数中获取 API 网关 URL?
【发布时间】:2022-01-27 04:57:51
【问题描述】:
我有一个使用 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-services
aws-lambda
aws-api-gateway
【解决方案1】:
您可以根据 Lambda 函数的 events 变量中的值重构完整的 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 Proxy integration 部分。