Planen der Migration von Node.js und Express zu Azure Functions

Abgeschlossen

Um die Umstellung der Back-End Express-App auf serverlose zu planen, können Sie die Express-App in drei Hauptbereiche unterteilen:

  • den Express-Server, der sich größtenteils in server.ts befindet
  • die Routen, die sich im Ordner routes/ befinden
  • Die Datenzugriffslogik, die sich im Ordner services/ befindet

Um Ihren Code von Express zu Azure Functions umzugestalten, planen Sie diese Aktionen, mit deren Implementierung Sie in der nächsten Lerneinheit beginnen werden:

  1. Erstellen Sie eine neue Azure Functions-Anwendung.
  2. Kopieren Sie den Ordner services aus Node.js Express in die Azure Functions-App. Dies funktioniert, da die Datendienste nicht an den Express-Server gebunden sind.
  3. Erstellen Sie eine neue Funktions-API für jeden Routenendpunkt.
    • Urlaube abrufen
    • Urlaube hinzufügen
    • Urlaub aktualisieren
    • Urlaub löschen
  4. Aktualisieren Sie Funktionscode für die Verwendung der Datenzugriffslogik im Ordner services/.
  5. Aktualisieren Sie Funktionsrouten, um den ursprünglichen Express-Routen zu entsprechen.

Beispiel einer Express-Route

Dies ist ein einfaches Beispiel für eine Express-Route, die Urlaube aus dem Urlaubsdienst abruft. Beachten Sie, dass es sich bei den Parametern für den Routenhandler um die req- und res-Objekte handelt.

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
});

Beispiel für eine Azure Functions-Route

Dies ist ein einfaches Beispiel für einen Azure Functions-Routenhandler und eine Routendefinition, die Urlaube aus dem Urlaubsdienst abruft. Beachten Sie, dass es sich bei den Parametern für den Routenhandler um die request- und context-Objekte handelt.

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
});

Sobald Sie die Struktur der Azure Functions-App verstanden haben, können Sie Ihren Code so organisieren, dass er der Struktur der ursprünglichen Node.js Express-App entspricht.

In der nächsten Übung erstellen Sie die Functions-App und verschieben den Code vom Express-Server in Functions.