Suporte da API em Aplicações Web Estáticas do Azure com as Funções do Azure

Os aplicativos Web front-end geralmente chamam APIs de retorno de chamada para dados e serviços. Por padrão, os Aplicativos Web Estáticos do Azure fornecem pontos de extremidade de API sem servidor internos por meio do Azure Functions.

As APIs do Azure Functions em Aplicativos Web Estáticos estão disponíveis em duas configurações possíveis, dependendo do plano de hospedagem:

  • Funções gerenciadas: por padrão, a API de um aplicativo Web estático é um aplicativo do Azure Functions gerenciado e implantado pelos Aplicativos Web Estáticos do Azure associado a algumas restrições.

  • Traga suas próprias funções: opcionalmente, você pode fornecer um aplicativo existente do Azure Functions de qualquer tipo de plano, que inclui todos os recursos do Azure Functions. Com essa configuração, você é responsável por lidar com uma implantação separada para o aplicativo Functions.

A tabela a seguir contrasta as diferenças entre o uso de funções gerenciadas e existentes.

Caraterística Funções gerenciadas Traga as suas próprias funções
Acesso a gatilhos e associações do Azure Functions Apenas HTTP Todos
Tempos de execução do Azure Functions suportados1 Node.js 12
Node.js 14
Node.js 16
Node.js 18
.NET Core 3.1
.NET 6.0
.NET 7.0
Python 3.8
Python 3,9
Python 3,10
Todos
Planos de hospedagem do Azure Functions suportados Consumo Consumo
Premium
Dedicada
Segurança integrada com acesso direto à autenticação do usuário e dados de autorização baseados em função
Integração de roteamento que torna a /api rota disponível para o aplicativo Web com segurança sem exigir regras CORS personalizadas.
Funções distribuídas (visualização) para distribuição global dinâmica de computação de back-end.
Modelo de programação de funções duráveis
Identidade gerida
Gerenciamento de token de Autenticação e Autorização do Serviço de Aplicativo do Azure
Funções de API disponíveis fora dos Aplicativos Web Estáticos do Azure
Referências do Key Vault

1 Para especificar a versão de tempo de execução em funções gerenciadas, adicione um arquivo de configuração ao seu aplicativo frontend e defina a apiRuntime propriedade. O suporte está sujeito à política de suporte do tempo de execução da linguagem do Azure Functions.

As opções de API para Aplicativos Web Estáticos incluem os seguintes serviços do Azure:

Consulte a visão geral das APIs para obter mais informações.

Nota

Funções distribuídas estão disponíveis com funções gerenciadas. As funções distribuídas distribuem automaticamente suas funções gerenciadas para regiões de altas cargas de solicitação.

Configuração

Os pontos de extremidade da API estão disponíveis para o aplicativo Web por meio da api rota.

Funções gerenciadas Traga as suas próprias funções
Enquanto a /api rota é fixa, você tem controle sobre o local da pasta do código-fonte do aplicativo de funções gerenciadas. Você pode alterar esse local editando o arquivo YAML do fluxo de trabalho localizado na pasta .github/workflows do repositório. As solicitações para a /api rota são enviadas para seu aplicativo existente do Azure Functions.

Solução de problemas e logs

Os logs só estarão disponíveis se você adicionar o Application Insights.

Funções gerenciadas Traga as suas próprias funções
Ative o registo ativando o Application Insights na sua aplicação Web estática. Ative o registo ativando o Application Insights na sua aplicação Azure Functions.

Restrições

Além das restrições da API de Aplicativos Web Estáticos, as seguintes restrições também são aplicáveis às APIs do Azure Functions:

Funções gerenciadas Traga as suas próprias funções
  • Gatilhos e ligações são limitados a HTTP.
  • O aplicativo Azure Functions deve estar em Node.js 12, 14 Node.js, 16 Node.js Node.js 18 (visualização pública), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9 ou Python 3.10.
  • Algumas configurações do aplicativo são gerenciadas pelo serviço, portanto, os seguintes prefixos são reservados pelo tempo de execução:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Algumas tags de aplicativo são usadas internamente pelo serviço. Portanto, as seguintes tags são reservadas:
    • AccountId, EnvironmentId, FunctionAppId.
  • Você é responsável por gerenciar a implantação do aplicativo Functions.

Próximos passos