我正在尝试使用Azure函数开发以下方案。
我已经开发了处理数据库相关操作的Asp.Net Web API。现在,我想实现一个类似于调度程序的功能,该功能每天运行一次,并将清除数据库中的垃圾数据。我已经在Web API中为此创建了一个终结点,但是我想定期执行该终结点,因此我认为要使用Azure函数的TimerTrigger函数实现调度程序,有什么方法可以在TimerTrigger函数中调用我的Web api终结点。
如何在Azure函数中处理我的api的身份验证?
谢谢
更新:
根据mikhail的回答,最终我使用以下代码获得了令牌:
var client = new HttpClient();
client.BaseAddress = new Uri(apirooturl);
var grant_type = "password";
var username = "username";
var password = "password";
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("grant_type", grant_type),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password)
});
var token = client.PostAsync("token", formContent).Result.Content.ReadAsAsync<AuthenticationToken>().Result;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.token_type, token.access_token);
var response = await client.GetAsync(apiendpoint);
var content = await response.Content.ReadAsStringAsync();
Azure Function在正常的Web应用程序中运行,因此您可以在其中执行几乎所有操作。假设您使用的是C#,函数体可能看起来像
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
var response = await client.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句