Planejar a migração do Node.js e Express para o Azure Functions
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:
- Crie um novo aplicativo do Azure Functions.
- 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.
- 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
- Atualize o código da função para usar a lógica de acesso a dados em serviços/ pasta.
- 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.