如何在Azure函数中使用Azure资源运行状况API?
我想在公共论坛上展示我的Azure服务的运行状况,我正在尝试构建它。Azure计时器功能将获取资源的状态并转储到数据库中,该数据库可以通过调用API由外部应用程序显示。我尝试了一些东西,但Azure资源运行状况API受Azure保护安全性和期望Oauth2隐式流,我认为它是在浏览器中启动的,通过用户交互,我们是否有任何方法可以绕过它,只需访问Azure函数中的资源运行状况API,我们可以使用Azure MSI来要求令牌,然后我们可以使用令牌调用资源运行状况API 比如说如何在Azure函数中使用Azure资源运行状况API?,azure,azure-functions,Azure,Azure Functions,我想在公共论坛上展示我的Azure服务的运行状况,我正在尝试构建它。Azure计时器功能将获取资源的状态并转储到数据库中,该数据库可以通过调用API由外部应用程序显示。我尝试了一些东西,但Azure资源运行状况API受Azure保护安全性和期望Oauth2隐式流,我认为它是在浏览器中启动的,通过用户交互,我们是否有任何方法可以绕过它,只需访问Azure函数中的资源运行状况API,我们可以使用Azure MSI来要求令牌,然后我们可以使用令牌调用资源运行状况API 比如说 将Azure RAB
// Install package "Azure.Identity"
private static HttpClient httpClient = new HttpClient();
[FunctionName("Function2")]
public static async Task Run([TimerTrigger("0 */5 * * * *", RunOnStartup=true)]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
var creds = new DefaultAzureCredential();
var scopes = new string[] { "https://management.azure.com/.default" };
AccessToken token= await creds.GetTokenAsync(new TokenRequestContext(scopes));
string uri = " ";
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get,uri)) {
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token.Token);
using (HttpResponseMessage response = await httpClient.SendAsync(request)) {
if (response.IsSuccessStatusCode) {
var str = await response.Content.ReadAsStringAsync();
log.LogInformation(str);
}
}
}