首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用CNAME DNS条目调用AWS Lambda函数

使用CNAME DNS条目调用AWS Lambda函数
EN

Stack Overflow用户
提问于 2019-12-10 19:49:16
回答 1查看 2.2K关注 0票数 2

我目前在AWS上部署了lambda函数。Lambda的URL是https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/stage_name_here

我在我的DNS中创建了一个CNAME条目,它将my.custom.name.com指向Lambda:https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/的底部。我不拥有域名name.com。这纯粹是一个CNAME引用,我的DNS将解析到lambda基地。如果我在nslookup上运行my.custom.name.com,它确实会正确地解析并指向https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/

在调用https://xxxxxxxxxx.execute-api.us-east-1.amazonaws.com/stage_name_here时,我可以通过邮递员正确地使用lambda,但是如果我尝试使用my.custom.name.com/stage_name_here的任何变体,它将返回

代码语言:javascript
运行
复制
{
  'message': 'forbidden'
}

我的理解是,当我试图使用CNAME提出请求时,它首先会转到我的DNS。我的DNS将CNAME解析为lambda基地址。我的理解是,AWS将不了解my.custom.name.com,因为我的DNS只使用它来知道在哪里发送请求。

就我的理解而言,一个类比的例子是,我正试图将一封信发送到一个地址:address1。我不是在信上写address1,而是写address2。当邮递员收到我的信时,他问他的老板address2在哪里,他的老板告诉他address2 = address1。然后他把信交给address1。

在这个类推中,address2不需要实际存在才能发生这个事务。除非我误解了,AWS要求address2的存在,因为这些字母首先是address2,然后是address1

似乎正在发生的是,AWS不知何故知道address2是等式的一部分,因为当使用address2而不是address1时,它拒绝请求。

在这个场景中有什么不同,我如何设置DNS CNAME和AWS以使场景1发生?

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 21:14:02

API网关控制台有一个名为custom domains的内置机制。这正是你所需要的。正如LostJon所指出的那样,你需要设置它。

基本步骤是:

  1. 使用Amazon
  2. 创建SSL证书从
  3. 网关控制台(如api.example.com )创建自定义域,在此步骤中,为您的域选择通过步骤1
  4. 创建basepath获得的SSL证书,以将basepath指向API。例如,基路径/payment指向您的api,这使它可以通过https://api.example.com/payment访问,此过程还将为您提供一个cloudfront分发地址,例如d3fgrtgh@cloudfront.net`

Route53 (或域寄存器),并创建A记录,将子域api.example.com指向cloudfront分发地址e.g d3fgrtgh@cloudfront.net`

参考资料:https://hackernoon.com/how-to-setup-subdomain-for-aws-api-gateway-d526a9fd6722

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59274369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档