如何在AWS Lambda函数中获取API网关URL?

时间:2018-09-30 08:05:01

标签: 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的行为。我该怎么办?任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分: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']

有关可以从事件变量中获取的其他信息的详细信息,请参阅AWS文档的Lambda Proxy integration部分。