首页 > 解决方案 > API 中的不同后端终结点取决于 Azure API 管理中的产品

问题描述

我是 Azure API 管理的绝对新手,我对如何管理产品和 API 有疑问。

让我们想象一下这个场景:我创建了 3 个不同的产品:一个代表我的开发环境 (DEV),第二个代表我的预生产环境 (PRE),最后一个代表我的生产环境 (PRO)。我创建了几个我想在我的 DEV 环境中发布的 API,然后再推广给其他人。所以我需要每个不同产品中的每个 API 来指向不同的后端服务,因为我的后端服务在每个环境中都是不同的。

例如:我有 3 个不同版本的后端服务:ServiceDEV、ServicePRE 和 ServicePRO。在开发 API 时,我使用名为 ServiceDEV 的后端服务,因此我的 API 被分配给 Product DEV。后来我想为我的 API 保留这个 DEV 版本,但我也想在 Product PRE 中“部署”该 API 以使其充当 ServicePRE 的外观,并且在将其升级为 PRO 时也会发生同样的情况。

这种方法的问题是,每次我想将其中一个从一个环境提升到另一个环境时,我都需要克隆 API 并更改它们的设置以使它们指向正确的后端端点,从而丢失该 API 的所有版本控制,因为克隆操作只是克隆 API 的当前版本。

我不知道政策是否能满足我在这个主题上的需求。

我希望你明白我的意思...

我该如何处理这种情况?我是否以错误的方式关注这个主题?关于如何克服这个问题的任何想法?

谢谢!

标签: apiproductazure-api-managementenvironments

解决方案


如果您遵循这种方法,那么您确实可以使用策略来管理不同产品的不同后端。您可以在不完全指定后端服务 URL 的情况下创建 API,然后在产品级别使用 set-backend-service 策略将调用定向到适当的端点。这种方法的一个限制因素是,您可能想要对开发环境中的 API 进行的任何更改(想想操作或策略的更改签名)都将在其他环境中立即可见,而且这是所有环境中的单个 API他们。如果这是一个问题,请考虑使用重复(三重)API - 每个环境一个,然后通过 Azure API 调用移动它们的配置。


推荐阅读