APIs 中的不同后端端点取决于 Azure API 管理中的产品

Different backend endpoints in APIs depending on Products in Azure API Management

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

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

例如: 我有 3 个不同版本的后端服务:ServiceDEV、ServicePRE 和 ServicePRO。在开发 API 时,我使用名为 ServiceDEV 的后端服务,因此我的 API 被分配给产品 DEV。后来我想为我的 API 保留这个 DEV 版本,但我也想 "deploy" 产品 PRE 中的 API 使其充当 ServicePRE 的外观,同样的事情会发生将其提升为 PRO 时。

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

的当前版本

我不知道政策是否能满足我在这方面的需求。

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

我该如何处理这种情况? 我是否以错误的方式关注这个主题? 知道如何克服这个问题吗?

谢谢!

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