Planejar a migração do Node.js e Express para o Azure Functions

Concluído

Para planejar a mudança do aplicativo back-end Express para serverless, você pode dividir o aplicativo Express em três áreas principais:

  • O servidor Express, que se encontra maioritariamente em server.ts
  • As rotas, que estão na pasta routes/
  • A lógica de acesso aos dados, que está em serviços/ pasta

Para refatorar seu código do Express para o Azure Functions, planeje estas ações, que começará a implementar na próxima unidade:

  1. Crie um novo aplicativo do Azure Functions.
  2. Copie a pasta de serviços do Node.js Express para o aplicativo Azure Functions. Isso funciona porque os serviços de dados não estão vinculados ao servidor Express.
  3. Crie uma nova API de função para cada ponto de extremidade de rota.
    • Obter férias
    • Adicionar férias
    • Atualizar férias
    • Excluir férias
  4. Atualize o código da função para usar a lógica de acesso a dados em serviços/ pasta.
  5. Atualize as rotas da função para corresponder às rotas Expressas originais.

Exemplo de rota expressa

Este é um exemplo simples de uma rota Express que recebe férias do serviço de férias. Observe que os parâmetros para o manipulador de rotas são os req objetos e 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
});

Exemplo de rota do Azure Functions

Este é um exemplo simples de um manipulador de rotas e definição de rota do Azure Functions que obtém férias do serviço de férias. Observe que os parâmetros para o manipulador de rotas são os request objetos e 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
});

Depois de entender a estrutura do aplicativo Azure Functions, você pode organizar seu código para corresponder à estrutura do aplicativo Node.js Express original.

No próximo exercício, você cria o aplicativo Functions e muda o código do servidor Express para o Functions.