Planifier la migration de Node.js et Express vers Azure Functions

Effectué

Pour planifier le passage au mode serverless de l’application back-end Express, vous pouvez décomposer l’application Express en trois zones principales :

  • Le serveur Express, qui est principalement dans server.ts
  • Les routes, qui se trouvent dans le dossier routes/
  • Logique d’accès aux données qui se trouve dans le dossier services/

Pour refactoriser votre code d’Express vers Azure Functions, vous planifiez ces actions que vous allez commencer à implémenter dans l’unité suivante :

  1. Créez une application Azure Functions.
  2. Copiez le dossier des services de Node.js Express vers l’application Azure Functions. Cela fonctionne, car les services de données ne sont pas liés au serveur Express.
  3. Créez une API de fonction pour chaque point de terminaison de route.
    • Obtenir des vacances
    • Ajouter des vacances
    • Mettre à jour des vacances
    • Supprimer des vacances
  4. Mettez à jour le code de fonction pour utiliser la logique d’accès aux données dans le dossier services/.
  5. Mettez à jour les routes de fonction pour qu’elles correspondent aux routes Express d’origine.

Exemple de route Express

Il s’agit d’un exemple simple de route Express qui obtient des vacances à partir du service de vacances. Notez que les paramètres du gestionnaire de routes sont les objets req et res.

import * as express from 'express';
import { vacationService } from '../services';

const router = express.Router();

router.get('/vacations', (req, res) => {    // API route
  vacationService.getVacations(req, res);   // Data access logic
});

Exemple de route Azure Functions

Il s’agit d’un exemple simple de gestionnaire de routes et de définition de route Azure Functions qui obtient des vacances à partir du service de vacances. Notez que les paramètres du gestionnaire de routes sont les objets request et context.

import { app } from '@azure/functions';
import { HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';
import * as vacationService from '../services';

export async function getVacations(request, context) {
    return {
        status: 200,
        jsonBody: vacationService.getVacations(); // Data access logic
    };
};

app.http('get-vacations', {  // API route
    methods: ['GET'],
    route: 'vacations',
    authLevel: 'anonymous',
    handler: getVacations
});

Une fois que vous comprenez la structure de l’application Azure Functions, vous pouvez organiser votre code pour qu’il corresponde à la structure de l’application Express Node.js d’origine.

Dans le prochain exercice, vous créez l’application Functions et déplacez le code du serveur Express vers Functions.