我需要创建一个重定向器,将用户重定向到外部域,同时保留查询参数和一个附加参数。
例如用户访问时
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还是有更好的方法?
答案 0 :(得分:1)
您可以将Azure Function与HttpTrigger 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();
}