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. As aplicações sem servidor são compostas por código JavaScript ou TypeScript que é executado em resposta a vários eventos.

As funções fornecem-lhe:

  • Abstração de serviço Web - você se concentra em código, não em infraestrutura.

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

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

  • Biblioteca de exemplos da comunidade sem servidor 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ê, 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.

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.
  • API 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ê pode criar funções que são acionadas por outros serviços do Azure ou que são enviadas para outro serviço do Azure usando associações de gatilho.
  • Funções de alto código: para obter mais controle, use os SDKs do Azure para coordenar e controlar outros serviços do Azure.

Próximos passos

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

Aprender Exemplo
O que é a Contoso Real Estate Contoso Imóveis
Crie 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