node.js - 如何知道我的 lambda 绑定到的自定义域?
问题描述
我有一个 lambda 函数,它有它的 api-gateway URL。此外,我在 CloudFront ( https://abc.def.com/ghi )中有一个与之关联的自定义域 URL 。我可以使用自定义域访问我的 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 环境变量传递。如果您使用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;
然后你只需将它添加到你的响应对象中。
推荐阅读
- javascript - 部署到 Firebase 托管时无法初始化 Firebase 存储
- python - 运行时错误:无法导入名称 py31compat
- android - 在不同设备上测试我的应用
- gensim - 如何将 word2vec 旋转到另一个 word2vec?
- java - Google App Engine Flex 在运行 Play Framework 应用程序时出现 No X11 DISPLAY 变量被设置错误;我在哪里设置这个变量?
- javascript - 如何自动删除css规则“body overflow:hidden”
- python - 烧瓶上的错误 404
- c# - How to access ServiceStack based web service from visual studio webform
- javascript - Firebase - 允许用户根据数据库信息访问部分数据库
- ruby-on-rails - Ruby:在数组中转换对象后传递键/值