Planowanie migracji z usług Node.js i Express do usługi Azure Functions

Ukończone

Aby zaplanować przesunięcie aplikacji zaplecza Express na bezserwerowe, możesz podzielić aplikację Express na trzy główne obszary:

  • Serwer Express, który jest głównie w elemencie server.ts
  • Trasy, które znajdują się w folderze routes/ folder
  • Logika dostępu do danych, która znajduje się w usługach/ folderze

Aby refaktoryzować kod z usługi Express do usługi Azure Functions, należy zaplanować te akcje, które zaczną implementować w następnej lekcji:

  1. Utwórz nową aplikację usługi Azure Functions.
  2. Skopiuj folder services z Node.js Express do aplikacji usługi Azure Functions. Działa to, ponieważ usługi danych nie są powiązane z serwerem Express.
  3. Utwórz nowy interfejs API funkcji dla każdego punktu końcowego trasy.
    • Uzyskiwanie urlopów
    • Dodawanie urlopów
    • Aktualizowanie urlopu
    • Usuwanie urlopu
  4. Zaktualizuj kod funkcji, aby używać logiki dostępu do danych w usługach/ folderze.
  5. Aktualizowanie tras funkcji w celu dopasowania do oryginalnych tras express.

Przykład usługi Express Route

Jest to prosty przykład trasy ekspresowej, która pobiera urlopy z usługi urlopowej. Zwróć uwagę, że parametry procedury obsługi tras to req obiekty i 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
});

Przykład trasy usługi Azure Functions

Jest to prosty przykład procedury obsługi tras i definicji trasy usługi Azure Functions, która pobiera urlopy z usługi urlopowej. Zwróć uwagę, że parametry procedury obsługi tras to request obiekty i 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
});

Po zapoznaniu się ze strukturą aplikacji usługi Azure Functions możesz zorganizować kod, aby dopasować go do struktury oryginalnej aplikacji Node.js Express.

W następnym ćwiczeniu utworzysz aplikację usługi Functions i przeniesiesz kod z serwera Express do usługi Functions.