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

时间:2018-06-20 14:55:34

标签: api product azure-api-management environments

我绝对是Azure API管理的新手,我对如何管理产品和API感到怀疑。

让我们想象一下这种情况: 我创建了3个不同的产品:一个代表我的开发环境(DEV),第二个代表我的生产前环境(PRE),最后一个代表我的生产环境(PRO)。 我创建了多个API,我希望在我的DEV环境中发布这些API,然后再推广到其他API。因此,我需要每个不同产品中的每个API指向一个不同的后端服务,因为我的后端服务在每个环境中都是不同的。

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

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

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

希望您能理解我的意思...

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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