在EC2服务器上,我们在不同端口上托管了相同API的不同实例。喜欢
http://localhost:9000/api/v1/customer
http://localhost:9001/api/v1/customer
http://localhost:9002/api/v1/customer
这些端点没有公开公开。但是每个端点对于我们的客户都是唯一的。
现在,我们的客户希望使用REST API访问customer
信息。因此,我尝试使用AWS API Gateway
创建公开公开的REST API。想法是一旦从客户端收到经过身份验证的请求,然后将请求传递到正确的端点即可。
我为每个客户端创建了IAM
个用户,因此每个客户端都有自己的access key
和secret key
。然后在AWS API Gateway console
中创建了一个新的REST API,将Method Request
配置为使用AWS_IAM
授权。现在,我必须配置Integration Request
。
如何在Integration Request
中基于IAM用户选择合适的端点?
答案 0 :(得分:2)
API网关目前不支持基于输入参数的条件路由。这是我们将来可能会支持的事情,但是我没有时间表何时可用。
您需要支持多少个客户?如果您没有太多,则可以为每个客户单独处理一个阶段,并使用stage variables。在这种情况下,变量将是服务器端口。
然后,您将授予您为该客户端配置的每个IAM用户permissions to only the stage。
请注意,有一个limit on the number of stages per rest api,虽然可以增加,但不能无限期地增加。如果您希望将这种方法用于大约50个以上的客户端,则可以考虑使用单个资源或每个客户端使用api。