Azure Functions les bases

Featured image

Azure Functions : Les bases

Une Azure functions peut facilement se résumer en quelques points :

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

placeholder

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.

Doc officiels

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

Doc officiels

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.

Azure Pricing

Conclusion

En conclusion, une Azure function c’est :

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 …).


MERCI

d'avoir pris le temps de lire cet article


Table des matières

  1. Azure Functions : Les bases
    1. Les triggers
    2. Une function, un code simple
    3. Multi language
    4. Faible cout
    5. Conclusion