Partilhar via


Desenvolvendo aplicativos Node.js sem servidor com o Azure Functions

O Azure Functions fornece uma poderosa infraestrutura sem servidor, permitindo-lhe desenvolver endereços de funcionalidades HTTP escaláveis e sob demanda com facilidade. Usando JavaScript ou TypeScript, você pode criar aplicativos sem servidor que respondem a vários eventos, permitindo que você se concentre em escrever código sem se preocupar em gerenciar servidores. Este guia ajuda você a começar a desenvolver aplicativos Node.js sem servidor usando o Azure Functions, integrando-se perfeitamente com outros serviços do Azure.

O que é um recurso de função?

Um recurso do Azure Function é uma unidade lógica para todas as funções relacionadas em um único local geográfico do Azure. O recurso pode conter uma única função ou muitas funções, que podem ser independentes umas das outras ou relacionadas com ligações de entrada ou saída. Você pode selecionar entre muitas funções comuns ou criar a sua própria.

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

Funções duráveis e com estado

As Funções Duráveis mantêm o estado ou gerenciam funções de longa execução no Azure. Crie sua primeira função durável em JavaScript.

As aplicações Web estáticas incluem funções

Ao desenvolver um aplicativo cliente 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 do aplicativo cliente para a API

Se você pretende implantar sua API com seu aplicativo Web estático, não precisa fazer proxy das chamadas de API do aplicativo cliente. O proxy é estabelecido para você quando você implanta o aplicativo Azure Functions como um aplicativo gerenciado.

Quando você desenvolve localmente com um Aplicativo Web Estático e o Azure Functions, o da CLI do Aplicativo Web Estático do Azure fornece o proxy local.

Configurações de segurança comuns que você precisa definir para sua Função do Azure

As seguintes configurações comuns devem ser definidas para manter sua Função do Azure segura:

  • Definições de configuração
    • Definições de configuração - crie definições de aplicação para 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 seu Cofre de Chaves.
    • Estado FTP nas configurações da plataforma - por padrão, todos são permitidos. Você precisa selecionar apenas FTPS ou desativar o FTP inteiramente para melhorar a segurança.
  • CORS - configure seus domínios de cliente. Não use *, indicando todos os domínios.
  • Configuração TLS/SSL para HTTPS - por padrão, sua API aceita solicitações HTTP e HTTPS. Habilite HTTPS somente nas configurações 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 or preflight e envie por push para esse slot. Troque este slot de estágio para a produção quando estiver pronto. Não adquira o hábito de empurrar manualmente para a produção. Sua base de código deve ser capaz de indicar a versão ou confirmação que está em um slot.

Pré-requisitos para desenvolver o Azure Functions

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

Uma função é uma função assíncrona exportada com informações de solicitação e contexto. A captura de tela parcial a seguir do portal do Azure mostra o código da 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 extensões

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

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

Integrar noutros 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 low-code: com o Azure Functions, você cria funções acionadas por outros serviços do Azure ou essa saída para outro serviço do Azure usando acionar ligações.
  • Funções de alto código: para obter mais controle, use os SDKs do Azure para coordenar e controlar outros serviços do Azure.