我在API网关注册了一些服务,使用Lambda无服务器部署。这两项服务都运行良好,使用AWS API网关本身命名的长域。然后,我尝试设置一个自定义域,将所有服务收集到一个域中,并按路径拆分服务。
以下是我想做的示例(2个服务示例(:
1. User Service registered on user-api-service Gateway API
2. Order Service registered on order-api-service Gateway API
我想添加自定义域与这些设置:
1. api.myapp.com/user path with destination user-api-service Gateway
API
2. api.myapp.com/order path with destination order-api-service Gateway
API
我试过设置这个,但不起作用。这就是问题所在:
路径总是使用根
无论我做了什么,它从来都不是使用定义的路径。而且只有第一个注册的映射在工作!
基于我的设置:
api.myapp.com/user/register应该被调用来注册,但它不起作用。据说是404或未找到
但它使用的是根路径:
api.myapp.com/register
API网关的文档没有说明任何自定义设置?
我该如何处理这个错误?
我假设您已经创建了自定义域,并将其附加到API网关以进行基本路径映射。考虑到这一点,您可以添加带有自定义基本路径的基本路径映射,就像您想要做的那样
- 转到AWS控制台中的API网关
- 向下滚动到自定义域名
- 在这里您将看到您的自定义域
- 单击EDIT选项
- 现在,您可以将映射添加为"user"或"order",并选择需要将此基本路径附加到"api.myapp.com/user/*"的服务
保存此设置后,您可以在上运行API
注意:若您以前已经连接过其他服务,则不能对其使用相同的基本路径
如果您还没有创建自定义域,请首先在路由53中创建自定义域然后将该自定义域添加到API网关自定义域部分以进一步处理