我有一个 lambda 函数,它有 api-gateway URL。另外,我在 CloudFront 中有一个与之关联的自定义域 URL ( 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:我使用的是node 8.10环境。
最佳答案
首先,我会质疑这个要求。恕我直言,将域 url 作为响应的一部分返回给客户端是没有意义的,因为客户端已经知道它(否则它将无法首先发出请求)。
也就是说,解决问题的一种方法是将自定义域 URL 作为 Lambda environment variable 传递。 。如果您已使用AWS SAM设置您的应用程序/CloudFormation 您将值作为 Environment 的一部分传递属性(property),例如使用 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;
然后您只需将其添加到您的响应对象中即可。
关于node.js - 如何知道我的 lambda 绑定(bind)到的自定义域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52823295/