我有一个lambda函数,它有自己的api网关URL。另外,我在CloudFront (https://abc.def.com/ghi)中有一个与之相关联的自定义域名地址。我可以使用自定义域访问我的lambda。现在,作为一个要求,我应该从lambda函数返回自定义域URL,作为JSON响应的一部分。因此,来自lambda的响应主体应该如下所示:
{
"response": "hi i am coming from lambda",
"myurl": "https://abc.def.com/ghi"
}如何在lambda函数中捕获URL?PS:我使用的是Node8.10环境。
发布于 2018-10-16 03:34:44
首先,我要挑战这个要求。将域名url作为响应的一部分返回给客户端是没有意义的,因为客户端已经知道了(否则它一开始就不能发出请求)。
也就是说,解决问题的一种方法是将自定义域url作为Lambda environment variable进行传递。如果您使用AWS SAM / CloudFormation设置应用程序,则将该值作为Environment属性的一部分进行传递,例如在使用SAM时:
ExampleLambda:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs8.10
CodeUri: .
Handler: index.handler
Environment:
Variables:
CUSTOM_DOMAIN_URL: !Sub CustomDomainUrl然后,CUSTOM_DOMAIN_URL将作为环境变量出现在您的Lambda运行时中:
const CUSTOM_DOMAIN_URL = process.env.CUSTOM_DOMAIN_URL;然后你你只要把它添加到你的响应对象中。
https://stackoverflow.com/questions/52823295
复制相似问题