Azure 应用服务:Select 基于 HTTP header 值的端点

Azure App Service: Select the endpoint based on HTTP header value

我有一个 multi-tenant 应用程序,在每个请求中,租户的 ID 在 HTTP headers 中发送。

我想实现一个简单的金丝雀部署,我会选择租户 ID 的一个子集,为实验版本创建一个部署槽,并将 selected 租户的所有 HTTP 请求路由到新的插槽。

也就是说,我需要一种方法来检查每个请求,并根据 HTTP header 的值,select 应该为请求提供服务的插槽。

有没有办法通过 Azure 应用服务来实现?

您需要一个反向代理,可以使用 Azure Functions 的代理功能来实现。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-proxies

但是,实现它的最佳方法是使用 API 管理。挺贵的,可以用消费计划,省下不少钱。

https://docs.microsoft.com/en-us/azure/architecture/microservices/design/gateway