啊,我想通了!
因此,很遗憾,显示自定义域的页面并不是您需要进行路由的地方。
正确的过程是创建一个 API(或使用现有的 API,并修改资源)并为其提供代理资源,以及源自根路径的普通 GET 方法。
首先,转到您的 API Gateway 控制台,然后创建一个新 API。
然后,一旦你给它一个名字,并选择类型(区域,或边缘),它会显示资源页面
在这里,您将做两件事:创建一个 catch all 代理资源,以及一个获取根路径的资源。
第 1 步:制作一个捕获所有代理资源:
单击操作,然后选择创建资源
在向导中,单击“配置为代理”并为其命名。保持资源路径不变。然后点击创建资源。 {proxy+} 是一种表示法,它告诉 AWS 该资源应该接受在 / 之后包含任何内容的任何路径。这意味着 /test 将与 /test/1/2/3/etc 一样工作。但是仅仅/单独是行不通的!
接下来,它将带您进入选择集成类型的屏幕。我们想要 lambda,这是默认值。确保选择正确的区域,对我来说默认是正确的。然后开始输入您的 lambda 函数名称,它应该会动态弹出您的 lambda 函数列表。选择您想要的应用程序。如果这不起作用,您可以从 lambda 函数控制台复制并粘贴您的 lambda ARN。点击保存。
第 2 步:为根路径创建一个获取资源
点击顶部的根斜线,就在它说资源的地方。然后单击操作,并选择创建方法。它会在根斜线下弹出一个小选择的东西,在那里你应该选择GET,然后点击小勾号。
在这里,请确保选中使用 Lambda 代理集成,然后此表单的其余部分应与您上次所做的相同。只需选择您所在的地区和您的 lambda 函数,然后点击保存。
第 3 步:部署
完成后,转到操作,然后选择部署 API,为阶段命名并提供一些描述,然后您就可以将此 API 附加到您的自定义域。
第 4 步:附加
在左侧选项卡上向下滚动到显示自定义域名的位置,然后创建一个新域名(或将其附加到现有域名,如果有的话)
输入您的域名,然后选择区域或边缘。然后选择你的证书(关于如何通过 AWS 制作证书有很多很好的指南)
点击保存后,会如下所示:
单击显示基本路径映射,然后单击编辑。
在路径字段中只留下一个斜线,在目标字段中,从下拉列表中选择您刚刚部署的 API。在右侧,选择您在部署 API 时创建的阶段。
最后,它会等待一段时间的初始化,因此在您等待的时候,请记住您需要为此域创建一个 route53 记录集,并将其映射到 API GateWay 提供给我们的云端目标 URL。此目标 URL 类似于:www.u10dsa3s5iovdk.cloudfront.net。复制它,然后转到 Route 53,为您的域选择托管区域。创建一个记录集,并将其命名为与您刚刚创建的域相同的名称,因此如果您创建了 www.example.com,则在 Route 53 的名称字段中您需要输入 www。或者,如果您制作了 test.example.com,您需要输入 test。然后选择 Alias: Yes,对于 Alias Target,粘贴来自 API GateWay 的 cloudfront url。
自定义域名初始化完成后,您可以调用 www.example.com 和 www.example.com/anything/else/you/want/to/put/here
希望这可以帮助任何像我一样被困的人。如果我遗漏了什么,或者有什么不准确的地方,请告诉我。