Partager via


Développement d’applications Node.js serverless avec Azure Functions

Azure Functions fournit une infrastructure serverless puissante, ce qui vous permet de développer facilement des points de terminaison HTTP évolutifs à la demande. En utilisant JavaScript ou TypeScript, vous pouvez créer des applications serverless qui répondent à différents événements, ce qui vous permet de vous concentrer sur l’écriture de code sans vous soucier de la gestion des serveurs. Ce guide vous aide à commencer à développer des applications Node.js serverless à l’aide d’Azure Functions, en s’intégrant de manière transparente à d’autres services Azure.

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

Lorsque vous développez une application cliente frontale statique (comme Angular, React ou Vue), qui a également besoin d’API serverless, utilisez applications web statiques avec des fonctions pour regrouper les deux.

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 lorsque vous déployez l’application Azure Functions en tant qu’application managée.

Lorsque vous développez 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é.
  • 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 low-code : Avec Azure Functions, vous créez des fonctions déclenchées par d’autres services Azure ou qui sortent vers d’autres services Azure en utilisant les liaisons de déclenchement.
  • Fonctions avec beaucoup de code : Pour plus de contrôle, utilisez les SDK Azure pour coordonner et contrôler d’autres services Azure.