4 min to read
Azure Functions les bases
Azure Functions : Les bases
Une Azure functions peut facilement se résumer en quelques points :
- c’est un service de calcul dans le cloud Azure serverless
- qui permet d’exécuter du code à la demande
- sans avoir à provisionner d’infrastructure
En résumé, on va définir sur le cloud un container, dans lequelle les fonctions seront déployées, ensuite, l’exécution, le scaling, la disponibilité et tout autre problème/considérations qui pourrait être lié à l’infrastructure devient la responsabilité d’Azure, nous ne devons nous occuper de rien.
Une fois le code déployer et disponible, il reste une chose à comprendre, c’est comment exécuter ce code. Les Azure Functions utilise des triggers pour s’exécuter
Les triggers
L’un des points forts des Azure Functions, c’est la vaste liste de trigger disponible, qui s’étend d’un simple HTTP/Webhook a des déclencheurs sur des DB NoSQL comme CosmosDB.
Type | 1.x | 2.x |
---|---|---|
Blob storage | V | V |
Cosmos DB | V | V |
Event Grid | V | V |
Event Hubs | V | V |
HTTP & webhooks | V | V |
Microsoft Graph events | X | V |
Queue storage | V | V |
Service Bus | V | V |
Timer | V | V |
Une function, un code simple
Un autre avantage des Azure Functions, c’est le code minimaliste pour en crée une, les templates fournis par VS ou VS Code font bien le boulot. Une Azure Functions qui est trigger par du HTTP/Webhook ressemble à ça
public static class SampleFunction
{
[FunctionName("SampleFunction")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) {
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
name = name ?? data?.name;
return name != null
? (ActionResult)new OkObjectResult($"Hello, {name}")
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
}
Le code reste assez simple et compréhensible. Dans d’autres articles, des exemples de functions plus avancées avec d’autres triggers seront traité.
Multi language
Un autre avantage fondamental des Azure functions, c’est qu’il est possible de les développer en plusieurs languages différents. Les languages suivants sont supportés
Language | 1.x | 2.x |
---|---|---|
C# | GA (.NET Framework 4.7) | GA (.NET Core 2.2) |
JavaScript | GA (Node 6) | GA (Node 8 & 10) |
F# | GA (.NET Framework 4.7) | GA (.NET Core 2.2) |
Java | N/A | GA (Java 8) |
Powershell | Experimental | Preview (PowerShell Core 6) |
Python | Experimental | Preview (Python 3.6) |
Typescript | Experimental | GA (supported through transpiling to JavaScript) |
Faible cout
L’un des facteurs qui peut souvent jouer dans le fait de tester de nouvelles technologies, c’est l’investissement humain, mais également financier. Les Azure Functions proposent un plan gratuit, qui permet vraiment de tester pas mal de choses sans avoir à débourser un euro. Pour la suite, la tarification n’est pas très élevée de base.
Conclusion
En conclusion, une Azure function c’est :
- c’est un service de calcul dans le cloud Azure serverless
- qui permet d’exécuter du code à la demande
- sans avoir à provisionner d’infrastructure
- multilanguage
D’autres articles vont arriver prochainement sur les triggers, comment utiliser les avantages de l’ASP.NET Core dans une Azure Functions (DI, Configuration, etc …).
d'avoir pris le temps de lire cet article
Table des matières
Commentaires