Azure Functions est un service informatique sans serveur qui vous permet d’exécuter du code basé sur des événements sans gérer l’infrastructure. Lorsque vous créez une application Azure Functions en tant que bibliothèque de classes C#, la configuration des déclencheurs et des liaisons est cruciale pour définir la manière dont vos fonctions répondent aux événements et interagissent avec d’autres services.
Comprendre les déclencheurs et les liaisons
- Déclencheurs: Un déclencheur est ce qui provoque l’exécution d’une fonction. Il définit le point d’entrée de la fonction et spécifie le type d’événement qui l’invoquera. Les exemples incluent les requêtes HTTP, les messages dans une file d’attente ou un minuteur.
- Reliures: Les liaisons fournissent un moyen de connecter de manière déclarative votre fonction à d’autres ressources telles que le stockage, les bases de données et les systèmes de messagerie. Il existe des liaisons d’entrée (données consommées par votre fonction) et des liaisons de sortie (données produites par votre fonction).
Voici comment configurer des déclencheurs et des liaisons lorsque vous utilisez une bibliothèque de classes C# pour votre application Azure Functions.
Pour commencer, vous devez installer les packages NuGet nécessaires :
Package d’installation Microsoft.NET.Sdk.Functions
Ce package contient les outils et bibliothèques nécessaires au développement d’Azure Functions.
Chaque fonction est implémentée en tant que méthode publique dans une classe. Utilisez l’attribut FunctionName pour désigner une méthode en tant que fonction. Les déclencheurs et les liaisons sont définis à l’aide d’attributs sur les paramètres de la méthode.
Vous trouverez ci-dessous un exemple de configuration d’une fonction avec un déclencheur HTTP et une liaison de sortie vers Azure Table Storage :
en utilisant System.IO ;
en utilisant Microsoft.AspNetCore.Mvc ;
en utilisant Microsoft.Azure.WebJobs ;
en utilisant Microsoft.Azure.WebJobs.Extensions.Http ;
en utilisant Microsoft.AspNetCore.Http ;
en utilisant Microsoft.Extensions.Logging ;
en utilisant Newtonsoft.Json ;
classe statique publique MyFunctions
{
[FunctionName(“HttpTriggerFunction”)]
public statique IActionResult Run (
[HttpTrigger(AuthorizationLevel.Function, “get”, “post”, Route = null)] Demande HttpRequest,
[Table(“MyTable”, Connection = “AzureWebJobsStorage”)] sur tableOutput dynamique,
Journal ILogger)
{
log.LogInformation(“La fonction de déclenchement HTTP C# a traité une requête.”);
chaîne requestBody = new StreamReader(req.Body).ReadToEnd();
var data = JsonConvert.DeserializeObject(requestBody);
tableOutput = new { PartitionKey = “Partition”, RowKey = Guid.NewGuid().ToString(), Data = data };
return new OkObjectResult(“Données enregistrées dans le stockage de la table.”);
}
}
Déclencheur HTTP: L’attribut HttpTrigger précise que cette fonction répond aux requêtes HTTP. Vous pouvez définir les méthodes HTTP (get, post, etc.) et le niveau d’autorisation.
Déclencheur de file d’attente: Si vous souhaitez que la fonction réponde aux messages dans une file d’attente de stockage Azure, utilisez l’attribut QueueTrigger :
[FunctionName(“QueueTriggerFunction”)]
public static void Exécuter (
[QueueTrigger(“myqueue”, Connection = “AzureWebJobsStorage”)] chaîne queueItem,
Journal ILogger)
{
log.LogInformation($”Fonction de déclenchement de file d’attente traitée : {queueItem}”);
}
Déclencheur de minuterie: Pour planifier des tâches, utilisez l’attribut TimerTrigger :
[FunctionName(“TimerTriggerFunction”)]
public static void Exécuter (
[TimerTrigger(“0 */5 * * * *”)] Minuterie TimerInfo,
Journal ILogger)
{
log.LogInformation($”Fonction de déclenchement du minuteur exécutée à : {DateTime.Now}”);
}
Vous pouvez définir des liaisons à l’aide d’attributs tels que Blob, Queue, Table ou CosmosDB.
Liaison d’entrée Blob:
[FunctionName(“BlobInputFunction”)]
public static void Exécuter (
[BlobTrigger(“mycontainer/{name}”, Connection = “AzureWebJobsStorage”)] Diffusez myBlob,
nom de chaîne,
Journal ILogger)
{
log.LogInformation ($ “Fonction de déclenchement de blob traitée blob
Nom : {nom}
Taille : {myBlob.Length} octets”);
}
Liaison CosmosDB:
[FunctionName(“CosmosDBFunction”)]
public static void Exécuter (
[CosmosDB(
databaseName: “MyDatabase”,
collectionName: “MyCollection”,
ConnectionStringSetting = “CosmosDBConnection”,
Id = “{id}”,
PartitionKey = “{partitionKey}”)] cosmosItem dynamique,
Journal ILogger)
{
log.LogInformation($”Élément Cosmos DB : {cosmosItem}”);
}
Les chaînes de connexion pour les liaisons sont généralement stockées dans le fichier local.settings.json pour le développement local et dans Azure App Settings pour le déploiement :
{
“IsEncrypted”: faux,
“Valeurs”: {
“AzureWebJobsStorage”: “”,
“FUNCTIONS_WORKER_RUNTIME”: “pointnet”
}
}
Exécutez votre projet localement à l’aide de Visual Studio ou des outils Azure Functions Core. Assurez-vous que le fichier local.settings.json contient les chaînes de connexion et les configurations requises.
Lorsque vos fonctions sont testées et prêtes, déployez-les sur Azure à l’aide de l’une des méthodes suivantes :
- Option de publication de Visual Studio
- Azure CLI
- Actions GitHub ou Azure DevOps pour CI/CD
La configuration des déclencheurs et des liaisons dans Azure Functions pour une bibliothèque de classes C# implique de les définir via des attributs et de gérer leurs connexions via des paramètres de configuration. En utilisant les exemples ci-dessus, vous pouvez gérer divers scénarios basés sur des événements et vous intégrer de manière transparente aux services Azure.
#Configuration #déclencheurs #liaisons #dans #Azure #Functions #pour #une #bibliothèque #classes #par #Amit #Kumar #décembre