我有一个 Azure API 管理实例,它可以在一个域中正常工作。我的问题是让这个 API 可用于多种环境的最佳方式是什么?例如我的网址是:
- http://dev.api.com
- http://api.com
- api.us.com
- api.hk.com
这四个域运行相同的 Web API,它们只是不同的服务器。我是否为每个 API 管理实例创建一个?还是我只在一个 API 管理中为每个实例创建一个实例?
也许有一种有效的方法可以做到这一点,而我错过了。祝你今天过得愉快。
此致,
我有一个 Azure API 管理实例,它可以在一个域中正常工作。我的问题是让这个 API 可用于多种环境的最佳方式是什么?例如我的网址是:
这四个域运行相同的 Web API,它们只是不同的服务器。我是否为每个 API 管理实例创建一个?还是我只在一个 API 管理中为每个实例创建一个实例?
也许有一种有效的方法可以做到这一点,而我错过了。祝你今天过得愉快。
此致,
所以上面列出的 URL 是运行 Web API 的后端服务。如果您使用单个 APIM 实例,那么它们将共享您为该实例设置的域,并且可以使用后缀来描述 - 例如 .azure-api.net/devapi、.azure-api.net/usapi、.azure-api.net /hkapi 等 - 后缀名称在您的控制之下。这行得通/是你需要的吗?
我急需这个,所以我的做法是导入和导出 API。所以基本上我在第一台服务器上配置了我想要的所有参数,之后我转到 API 页面并导出到 wadl 并再次导入,更改“Web API URL 后缀”和“Web 服务 URL”。
我发现的唯一缺点是当我需要更改文档或 API 定义时,我需要更改四个不同的 API。我会将此反馈发送给 Microsoft 并查看他们的回复。
祝你今天过得愉快。
虽然是一个老问题,但我正在寻找类似的答案,所以我想我会添加我在这里使用的解决方案。您可以通过使用策略来解决此问题。为了解决这个问题,您首先需要能够区分每个用户应该被发送到哪个后端(我使用产品来做到这一点,您可能想调查使用策略来完成这部分)。在单个 API 上拥有产品后,您可以使用“设置后端服务”将每个请求转发到用户的正确环境。
要编辑策略,您可以导航到 API 管理门户上的页面。选择您要配置的产品和 API,然后选择配置策略。将“设置后端服务”插入“入站”策略并插入后端。
<set-backend-service base-url="https://example.co.uk"/>
此 Microsoft 页面包含有关重定向https://azure.microsoft.com/en-gb/blog/policy-expressions-in-azure-api-management/的策略的一些有用信息