fro*_*773 3 api amazon-web-services aws-lambda aws-api-gateway
我只是通过AWS API Gateway设置了自定义域名,现在我有几个域名都路由到一个lambda函数。只是一个网页。
设置如下所示:
我有几个具有不同域的域,我都希望它们都提供相同的内容。
现在,我想添加另一个路径,例如/ getdata或仅提供数据库中的某些数据而不提供静态HTML的内容。
但是,当我尝试添加其他路径时,出现此错误:
错误如果基本路径为空,则仅允许一个基本路径映射。
那么,如何拥有一个具有多个路径的域?
我尝试仅使用通配符路径:*,并且该方法适用于/ test或/ getdata等多个路径,但它不仅适用于域名,而且我不能告诉每个用户确保输入某些内容每次都像/ home一样
fro*_*773 10
啊,我想通了!
因此,很遗憾,显示自定义域的页面并不是您进行路由的位置。
正确的过程是创建一个API(或使用现有的API,然后修改资源),并为其提供代理资源,以及从根路径起源的普通GET方法。
首先,转到您的API GateWay控制台,并创建一个新的API。
然后,一旦给它命名,然后选择类型(区域或边缘),它将向您显示资源页面
在这里,您将做两件事:创建一个捕获所有代理资源,以及一个到根路径的获取资源。
步骤1:捕获所有代理资源:
单击操作,然后选择创建资源
在向导上,单击“配置为代理”,并为其命名。保持资源路径不变。然后单击创建资源。{proxy +}是表示AWS的资源,该资源应接受/后面有任何路径的任何路径。这意味着/ test和/ test / 1/2/3 / etc一样工作。但是,仅/单独使用是行不通的!
接下来,将带您到此屏幕,在其中选择集成类型。我们需要lambda,这是默认值。确保选择正确的区域,对我而言,默认区域是正确的区域。然后开始输入您的lambda函数名称,它会动态弹出您的lambda函数列表。选择您想要的应用程序之一。如果这不起作用,则可以从lambda功能控制台复制并粘贴lambda ARN。单击保存。
步骤2:为根路径获取获取资源
单击顶部的根斜线,紧挨在显示资源的位置。然后单击操作,然后选择创建方法。它将在根斜杠下面弹出一个小的选择项,您应该在此处选择GET,然后单击小的对号。
在这里,请确保选中“使用Lambda代理集成”,然后此表单的其余部分应与您完成的最后一个表单相同。只需选择您的区域和lambda函数,然后单击“保存”即可。
步骤3:部署
完成后,请执行操作,然后选择“部署API”,为其指定一个阶段名称和一些描述,然后就可以将该API附加到您的自定义域了。
步骤4:附加
在左侧标签上,向下滚动到显示“自定义域名”的位置,然后创建一个新域名(或将其附加到现有的域名上)
输入您的域名,然后选择区域或边缘。然后选择您的证书(关于如何通过AWS制作证书的指南很多)
单击“保存”后,它将类似于以下内容:
单击“显示基本路径映射”,然后单击“编辑”。
在path字段中,只留下一个斜线,在Destination字段中,从下拉列表中选择刚部署的API。在右侧,选择在部署API时进行的阶段。
最后,它需要等待一段时间进行初始化,因此,在等待时,请记住您需要为此域创建一个route53记录集,并将其映射到API GateWay给我们的云端目标URL。该目标网址如下:www.u10dsa3s5iovdk.cloudfront.net。复制该副本,然后转到Route 53,为您的域选择托管区域。创建一个记录集,并为其指定一个与您刚创建的域相同的名称,因此,如果您创建了www.example.com,则在Route 53的名称字段中需要输入www。或者,如果您创建了test.example.com,则需要输入test。然后选择Alias:是,并为Alias Target粘贴API GateWay的cloudfront URL。
自定义域名初始化完成后,您可以拨打www.example.com以及www.example.com/anything/else/you/want/to/put/here
希望这对任何被我困扰的人有所帮助。请让我知道我是否错过了什么,或者有什么不正确的地方。