Usar o Azure Functions para desenvolver Node.js soluções sem servidor

O Azure Functions fornece infraestrutura de código sem servidor, permitindo que você crie pontos de extremidade HTTP responsivos e sob demanda. Os aplicativos sem servidor são compostos de código JavaScript ou TypeScript que é executado em resposta a vários eventos.

As funções fornecem-lhe:

  • Abstração do serviço Web - você se concentra no código, não na infraestrutura.

  • Integração com serviços do Azure - acione o trabalho dentro ou fora de um serviço do Azure com eventos

  • Integre com pacotes JavaScript - use seus pacotes npm favoritos com seu código sem servidor

  • Azure Serverless Community Library, com exemplos

O que é um recurso do Function?

Um recurso do Azure Function é uma unidade lógica para todas as funções relacionadas em uma localização geográfica do Azure. O recurso pode conter uma única função ou muitas funções, que podem ser independentes entre si ou relacionadas com ligações de entrada ou saída. Você pode selecionar entre muitas funções comuns ou criar as suas.

As configurações de recurso de função incluem configurações típicas sem servidor, inclusive variáveis de ambiente, autenticação, registro em log e CORS.

Funções duráveis e com estado

O Durable Functions retém o estado ou gerencia as funções de longa execução no Azure. Crie a sua primeira função durável no JavaScript.

Aplicativos Web estáticos incluem funções

Ao desenvolver um aplicativo cliente de front-end estático (como Angular, React ou Vue), que também precisa de APIs sem servidor, use aplicativos Web estáticos com funções para agrupar ambos.

Proxy de aplicativo cliente para uma API

Se você pretende implantar sua API com seu aplicativo Web estático, não é necessário fazer proxy das chamadas de API do aplicativo cliente. O proxy é estabelecido para você, incluindo desenvolvimento local e remoto.

Ao desenvolver localmente com um Aplicativo Web Estático e o Azure Functions, a CLI do Aplicativo Web Estático do Azure fornece o proxy local.

Definições de segurança comuns necessárias para configurar a Função do Azure

As seguintes definições comuns deverão ser configuradas para proteger a Função do Azure:

  • Definições de configuração
    • Definições de configuração: crie configurações de aplicativo para as definições que não afetam a segurança.
    • Segredos e chaves - para quaisquer configurações que afetem a segurança, crie um Cofre de Chaves do Azure e extraia essas configurações do Cofre de Chaves.
    • Estado FTP nas configurações da plataforma: todos são permitidos por padrão. É preciso selecionar a opção somente FTPS ou desabilitar o FTP de modo completo para aprimorar a segurança.
  • CORS da API: configure domínios de cliente. Não use *, indicando todos os domínios.
  • Configuração do TLS/SSL para HTTPS: uma API aceita solicitações HTTP e HTTPS por padrão. Habilite a opção somente HTTPS nas configurações do TLS/SSL. Como seu aplicativo Function está hospedado em um subdomínio seguro, você pode usá-lo imediatamente (com https) e atrasar a compra de um nome de domínio e o uso de um certificado para o domínio até estar pronto.
  • Slots de implantação: crie um slot de implantação, como stage ou preflight, depois efetue push nele. Troque esse slot de estágio pela produção quando estiver pronto. Não crie o hábito de empurrar manualmente para a produção. A base de código deverá indicar a versão ou o commit de um slot.

Pré-requisitos para desenvolver o Azure Functions

Uma função JavaScript simples para solicitações HTTP

Uma função é assíncrona e exportada com informações de solicitação e de contexto. A captura de tela parcial a seguir do portal do Azure mostra o código de função.

import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";

export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    context.log(`Http function processed request for url "${request.url}"`);

    return {
        status: 200,
        jsonBody: {
            env: process.env
        }
    };
};

app.http('status', {
    route: "status",
    methods: ['GET'],
    authLevel: 'anonymous',
    handler: status
});

Desenvolva funções localmente com o Visual Studio Code e as extensões

Crie a sua primeira função com o Visual Studio Code. O Visual Studio Code simplifica muitos dos detalhes com a extensão do Azure Functions.

Essa extensão ajuda a criar funções JavaScript e TypeScript com modelos comuns.

Integração com outros serviços do Azure

As funções sem servidor removem grande parte da configuração e do gerenciamento do servidor para que você possa se concentrar apenas no código de que precisa.

  • Funções de código baixo: com o Azure Functions, você pode criar funções disparadas por outros serviços do Azure ou que geram saídas para outro serviço do Azure usando associações de gatilho.
  • Funções de código alto: para ter mais controle, use os SDKs do Azure para coordenar e controlar outros serviços do Azure.

Próximas etapas

Use a tabela a seguir para saber mais sobre o Azure Functions com Node.js

Aprender Amostra
O que é Contoso Real Estate Contoso Imóveis
Criar APIs sem servidor com o Azure Functions MicrosoftDocs/mslearn-build-api-azure-functions
Refatorar APIs do Node.js Express em APIs do Azure Functions sem servidor MicrosoftDocs/mslearn-module-shifting-nodejs-express-apis-to-serverless
Carregar e analisar um arquivo com o Azure Functions e o Armazenamento de Blobs Azure-Samples/msdocs-storage-bind-function-service