最好在Azure中重定向服务(302)?

时间:2019-03-31 12:56:35

标签: azure azure-functions azure-web-app-service

我需要创建一个重定向器,将用户重定向到外部域,同时保留查询参数和一个附加参数。

例如用户访问时 https://contoso.com/redirect?docId=123,它将把用户重定向到 https://contoso-v2.com/home?docId=123&token=xxxxxxx

一旦用户访问https://contoso.com/redirect?docId=123,此端点将处理信息(来自查询参数)并生成需要附加在目标URL中的令牌。

在Azure中最有效,最好的方法是什么?编写一个简单的Azure Web App还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

您可以将Azure FunctionHttpTrigger Binding一起使用。使用consumption plan,成本将最低(1 million invocations are free in pay-as-you-go plan)。

using System.Net;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

    var uri = req.RequestUri;
    var updatedUri = ReplaceHostInUri(uri, "contoso-v2.com");

    //return req.CreateResponse(HttpStatusCode.OK, "Original: " + uri + " Updated: " + updatedUri);
    return req.CreateResponse(HttpStatusCode.Found, updatedUri);
}

private static string ReplaceHostInUri(Uri uri, string newHostName) {
    var builder = new UriBuilder(uri);

    builder.Host = newHostName;
    //Do more trasformations e.g. modify path, add more query string vars

    return builder.Uri.ToString();
}