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

问题描述 投票:0回答:1

我目前在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时通过Postman正确使用lambda,但是,如果我尝试使用my.custom.name.com/stage_name_here的任何变体,它将返回

{
  'message': 'forbidden'
}

使用我的自定义CNAME能够引用我的lambda函数的正确方法是什么?

dns aws-lambda cname
1个回答
0
投票

AWS API网关控制台具有称为custom domains的内置机制。正是您所需要的。您需要按照@LostJon指出的进行设置。

基本步骤是:

  1. 使用Amazon ACM创建SSL证书
  2. 从API网关控制台创建自定义域,例如api.example.com,在此步骤中,选择通过步骤1获得的域的SSL证书
  3. 创建basepath以将basepath指向您的API。例如,基本路径/payment指向您的api,这使其可以通过https://api.example.com/payment访问此过程还将为您提供例如[email protected]的Cloudfront分发地址。
  4. 转到Route53(或您的域寄存器)并创建A记录,以将子域api.example.com指向云的分发地址,例如d3fgrtgh @ cloudfront.net`

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

© www.soinside.com 2019 - 2024. All rights reserved.