Share via


Utiliser Azure Functions pour développer des solutions serverless Node.js

Azure Functions fournit une infrastructure de code serverless, laquelle vous permet de créer des points de terminaison HTTP réactifs à la demande. Les applications serverless sont composées de code JavaScript ou TypeScript qui s’exécute en réponse à différents événements.

Les fonctions vous fournissent les fonctionnalités suivantes :

  • Abstraction du service web : vous vous concentrez sur le code, et non sur l’infrastructure.

  • Intégration avec les services Azure : déclencher un travail dans ou hors d’un service Azure avec des événements

  • Intégrer à des packages JavaScript : utilisez vos packages npm favoris avec votre code serverless

  • Exemples dans Azure Serverless Community Library

Qu’est-ce qu’une ressource Functions ?

Une ressource Azure Functions est une unité logique regroupant toutes les fonctions associées dans un seul emplacement géographique Azure. La ressource peut contenir une fonction unique ou de nombreuses fonctions, qui peuvent être indépendantes les unes des autres ou associées à des liaisons d’entrée ou de sortie. Vous pouvez choisir parmi de nombreuses fonctions courantes ou créer les vôtres.

Les paramètres de ressources Functions incluent des configurations serverless standard, notamment pour les variables d’environnement, l’authentification, la journalisation et CORS.

Fonctions durables avec état

Durable Functions conserve l’état des fonctions durables ou gère les fonctions de longue durée dans Azure. Créez votre première fonction durable en JavaScript.

Les applications web statiques incluent des fonctions

Quand vous développez une application cliente front-end statique (par exemple, Angular, React ou Vue), qui nécessite aussi des API serverless, utilisez des applications web statiques avec des fonctions pour les regrouper.

Proxy de l’application cliente à l’API

Si vous envisagez de déployer votre API avec votre application web statique, vous n’avez pas besoin de proxyr les appels d’API de votre application cliente. Le proxy est établi pour vous, y compris le développement local et distant.

Lors du développement localement avec une application web statique et Azure Functions, l’interface CLI Azure Static Web App fournit le proxy local.

Paramètres de sécurité courants à configurer pour votre fonction Azure

Les paramètres courants suivants doivent être configurés pour garantir la sécurité de votre fonction Azure :

  • Paramètres de configuration
    • Paramètres de configuration - Créez des paramètres d’application pour les paramètres qui n’impactent pas la sécurité.
    • Secrets et clés : pour tous les paramètres qui ont un impact sur la sécurité, créez un coffre de clés Azure et extrayez ces paramètres à partir de votre coffre de clés.
    • État FTP sur les paramètres de la plateforme - Par défaut, tous sont autorisés. Vous devez sélectionner FTPS uniquement ou désactiver FTP entièrement pour améliorer la sécurité.
  • API CORS - Configurez vos domaines clients. N’utilisez *pas , indiquant tous les domaines.
  • Paramètre TLS/SSL pour HTTPS - Par défaut, votre API accepte les requêtes HTTP et HTTPS. Activez HTTPS uniquement dans les Paramètres TLS/SSL. Étant donné que votre application de fonction est hébergée sur un sous-domaine sécurisé, vous pouvez l’utiliser immédiatement (avec https) et retarder l’achat d’un nom de domaine et l’utilisation d’un certificat pour le domaine jusqu’à ce que vous soyez prêt.
  • Emplacements de déploiement - Créez un emplacement de déploiement, comme stage ou preflight, et effectuez un envoi (push) à cet emplacement. Échangez cet emplacement intermédiaire en production lorsque vous êtes prêt. Ne prenez pas l’habitude de pousser manuellement vers la production. Votre base de code doit indiquer la version ou valider celle qui se trouve sur un emplacement.

Conditions préalables pour le développement d’Azure Functions

Fonction JavaScript simple pour les requêtes HTTP

Une fonction est une fonction asynchrone exportée qui contient des informations sur la requête et le contexte. La capture d’écran partielle suivante du portail Azure montre le code d’une fonction.

import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";

export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    context.log(`Http function processed request for url "${request.url}"`);

    return {
        status: 200,
        jsonBody: {
            env: process.env
        }
    };
};

app.http('status', {
    route: "status",
    methods: ['GET'],
    authLevel: 'anonymous',
    handler: status
});

Développer des fonctions localement avec Visual Studio Code et des extensions

Créez votre première fonction à l’aide de Visual Studio Code. Visual Studio Code simplifie la plupart des tâches grâce à l’extension Azure Functions.

Cette extension vous aide à créer des fonctions JavaScript et TypeScript avec des modèles courants.

Intégrer à d’autres services Azure

Les fonctions serverless suppriment la majeure partie de la configuration et de la gestion du serveur, ce qui vous permet de vous concentrer seulement sur le code dont vous avez besoin.

  • Fonctions avec peu de code : Avec Azure Functions, vous pouvez créer des fonctions qui sont déclenchées par d’autres services Azure ou qui envoient leur résultat à d’autres services Azure en utilisant des liaisons de déclencheur.
  • Fonctions avec beaucoup de code : Pour plus de contrôle, utilisez les SDK Azure pour coordonner et contrôler d’autres services Azure.

Étapes suivantes

Utilisez le tableau suivant pour en savoir plus sur Azure Functions avec Node.js

Apprendre Exemple
Qu’est-ce que Contoso Real Estate ? Contoso Real Estate
Créer des API serverless avec Azure Functions MicrosoftDocs/mslearn-build-api-azure-functions
Refactoriser Node.js API Express dans des API Azure Functions serverless MicrosoftDocs/mslearn-module-shift-nodejs-express-apis-to-serverless
Charger et analyser un fichier avec Azure Functions et le Stockage Blob Azure-Samples/msdocs-storage-bind-function-service