Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Functions fornece uma infraestrutura poderosa sem servidor, permitindo que você desenvolva pontos de extremidade HTTP escaloná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 com o gerenciamento de 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 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 umas das outras ou relacionadas a associaçõ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 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 precisa fazer proxy das chamadas de API do aplicativo cliente. O proxy é estabelecido para você quando você implanta o aplicativo do Azure Functions como um aplicativo gerenciado.
Quando você desenvolve localmente com um Aplicativo Web Estático e o Azure Functions, a CLI de Aplicativos Web Estáticos 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:
-
Autenticação e autorização:
- Use a ID do Microsoft Entra (antigo Azure Active Directory) para autenticação robusta. Configure seu aplicativo de funções para exigir tokens OAuth2 para cargas de trabalho de produção.
- Evite usar chaves de função para aplicativos confidenciais. Em vez disso, integre com o Microsoft Entra ID ou valide tokens JWT em seu código de função.
- Use identidades gerenciadas para autenticar seu aplicativo de funções com outros recursos do Azure, garantindo que cada função obtenha apenas o acesso necessário.
-
Configurações:
- Configurações do aplicativo – crie configurações de aplicativo para configurações que não afetam a segurança.
- Segredos e chaves – para todas as configurações que afetam a segurança, use esta abordagem em camadas:
- Primeiro, use a ID do Microsoft Entra para autenticação quando houver suporte.
- Para integrações que não dão suporte ao Entra ID, armazene segredos no Azure Key Vault e obtenha essas configurações do Key Vault.
- Nunca insira segredos em arquivos de código ou de configuração.
- Para outras configurações de segurança de plataforma, consulte Proteção do Azure Functions.
-
Segurança de rede:
- CORS – configurar os domínios do cliente. Não use
*, indicando todos os domínios. - Integração de rede virtual – use pontos de extremidade privados ou integração de rede virtual para limitar a exposição à rede e restringir o tráfego de entrada de fontes confiáveis.
- CORS – configurar os domínios do cliente. Não use
-
HTTPS e criptografia:
- 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 de funções está hospedado em um subdomínio seguro, você pode usá-lo imediatamente (com
https) e adiar a compra de um nome de domínio e usar um certificado para o domínio até que esteja pronto.
- 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 de funções está hospedado em um subdomínio seguro, você pode usá-lo imediatamente (com
-
Implantação e monitoramento:
- Slots de implantação: crie um slot de implantação, como
stageoupreflight, depois efetue push nele. Troque este slot de palco para produção quando estiver pronto. Não adquira o hábito de enviar manualmente para a produção. A base de código deverá indicar a versão ou o commit de um slot. - Habilite o Application Insights para detecção de telemetria, alertas e anomalias em tempo real para monitorar suas funções e logs de auditoria para atividades suspeitas.
- Slots de implantação: crie um slot de implantação, como
Para obter diretrizes de segurança abrangentes, consulte Como proteger o Azure Functions.
Opções de hospedagem para o Azure Functions
Você pode hospedar o Azure Functions de maneiras diferentes, dependendo de seus requisitos:
Planos de hospedagem de recursos do Azure Functions
Ao criar um recurso do Azure Functions, você pode escolher entre estes planos de hospedagem:
- Plano de consumo: pague apenas pelo tempo em que suas funções são executadas com o dimensionamento automático.
- Plano Flexível de Consumo: fornece controle aprimorado com instâncias sempre prontas para reduzir latências de inicialização, integração de rede virtual e tamanhos de instância configuráveis (de 512 MB a 4 GB). Esse plano é recomendado para novas cargas de trabalho baseadas em Linux que exigem recursos de segurança e desempenho corporativos. Note que este plano utiliza cobrança baseada em execução, semelhante ao Plano de Consumo, mas com custos adicionais para recursos como instâncias prontas para uso.
- Plano Premium: fornece desempenho aprimorado com instâncias pré-aquecidas, conectividade de rede virtual e durações de execução mais longas.
- Plano dedicado (Serviço de Aplicativo): execute funções em máquinas virtuais dedicadas para custos previsíveis e controle total sobre o ambiente de runtime.
Para obter mais informações sobre como escolher o plano de hospedagem correto, consulte as opções de hospedagem do Azure Functions.
Recurso de aplicativos de contêiner do Azure
Como alternativa, você pode implantar o Azure Functions em um recurso de Aplicativos de Contêiner do Azure como cargas de trabalho em contêineres. Essa opção fornece controle total sobre o ambiente de contêiner e é ideal quando você precisa de dependências personalizadas, processos de execução longa ou deseja combinar funções com outros microsserviços em contêineres. Consulte os Aplicativos de Contêiner do Azure que hospedam o Azure Functions para obter mais informações.
Pré-requisitos para desenvolver o Azure Functions
- Node.js LTS – Use a versão mais recente do LTS (Suporte de Longo Prazo) para obter as melhores atualizações de compatibilidade e segurança com o Azure Functions.
- Ferramentas principais do Azure Functions – Use a versão principal atual para desenvolvimento local e depuração.
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 baixo código: Com o Azure Functions, você cria funções disparadas por outros serviços do Azure ou funções que têm saída para outros serviços do Azure usando associações de gatilho. O modelo de programação v4 registra todos os gatilhos e associações diretamente em seu código, tornando a configuração segura e intuitiva.
- Funções de alto código: para obter mais controle, use os SDKs do Azure para coordenar e controlar outros serviços do Azure. Use identidades gerenciadas para autenticar com segurança suas funções com outros recursos do Azure sem gerenciar credenciais.