gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 05:07:15 25 4
gpt4 key购买 nike

我目前在 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 基础。如果我在 my.custom.name.com 上运行 nslookup,它会正确解析并指向 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 发出请求时,它首先转到我的 DNS。我的 DNS 将该 CNAME 解析为 lambda 基地址。我的理解是 AWS 不知道 my.custom.name.com,因为我的 DNS 仅使用它来了解向何处发送请求。

就我的理解而言,一个类比是我正在尝试将一封信发送到一个地址:address1。我没有在信上写 address1,而是写 address2。当 postman 收到我的信时,他问他的老板 address2 在哪里,他的老板告诉他 address2 = address1。然后他把信送到address1。

在这个类比中,address2 并不需要实际存在才能发生此交易。除非我误解了,否则 AWS API Gateway 要求 address2 存在,因为字母首先转到 address2,然后转到 address1

似乎正在发生的事情是 AWS 以某种方式知道 address2 是等式的一部分,因为当使用 address2 而不是 address1< 时它拒绝请求.

这种情况有什么区别,我如何设置 DNS CNAME 和 AWS 才能使情况 1 发生?

最佳答案

AWS API 网关控制台具有称为自定义域 的内置机制。这正是您所需要的。您需要按照@LostJon 指出的那样进行设置。

基本步骤是:

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

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

关于dns - 使用 CNAME DNS 条目调用 AWS Lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59274369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com