2017-03-10 1 views
2

Je tente de développer le scénario suivant à l'aide des fonctions Azure.Appel du noeud final API Web Asp.Net à partir de la fonction Azure

J'ai développé l'API Web Asp.Net qui gère l'opération liée à la base de données. Maintenant, je veux implémenter une fonctionnalité de planificateur qui fonctionnera une fois par jour et nettoiera les données indésirables de la base de données. J'ai créé un point de terminaison pour cela dans mon API Web mais je veux l'exécuter régulièrement, donc je pense que pour implémenter le planificateur en utilisant la fonction TimerTrigger de la fonction Azure, est-il possible d'appeler le point final de mon API web dans la fonction TimerTrigger.

Comment gérer l'authentification de mon API dans la fonction Azure?

Merci

Mise à jour:

Sur la base de la réponse de mikhail, finalement j'obtenu le jeton en utilisant le code suivant:

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(); 
+0

Comment/Comment avez-vous ajouté des références afin que vous puissiez utiliser 'AuthenticationToken'? Merci. –

+0

@ SkorunkaFrantišek J'ai ajouté 'using System.Net.Http;' car il fait partie de la propriété 'DefaultRequestHeaders' de la classe' HttpClient' et nous pouvons trouver 'HttpClient' sous l'espace de noms' System.Net.Http'. – Rinkesh

Répondre

2

Fonction Azure est en cours d'exécution dans une application Web normale, de sorte que vous peut faire à peu près n'importe quoi là-bas. En supposant que vous êtes sur C#, le corps de la fonction peut ressembler à quelque chose comme

var client = new HttpClient(); 
client.DefaultRequestHeaders.Authorization = 
    new AuthenticationHeaderValue("Bearer", token); 

var response = await client.GetAsync(url); 
var content = await response.Content.ReadAsStringAsync(); 
+0

Merci pour votre réponse rapide. Je me demande simplement comment obtenir un jeton, car mon api sera sur une URL différente. En outre, j'ai essayé d'appeler mon point de terminaison de jeton mais il ne retourne pas le jeton. – Rinkesh

+0

J'ai donné l'authentification Bearer comme un exemple. Cela dépend de ce que vous avez configuré pour votre API. Si l'authentification fonctionne quelque part, vous pourrez la copier dans Function App. – Mikhail

+0

Je vais jeter un coup d'oeil. Merci beaucoup. – Rinkesh