Compartilhar via


Suporte de API nos Aplicativos Web Estáticos do Azure com Azure Functions

Os aplicativos Web de front-end geralmente chamam APIs finais 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 via Azure Functions.

As APIs do Azure Functions nos 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 por Aplicativos Web Estáticos do Azure associados a algumas restrições.

  • Traga suas próprias funções: opcionalmente, é possível fornecer um aplicativo do Azure Functions existente 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 de funções.

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

Recurso Funções Gerenciadas Traga suas próprias Funções
Acesso a gatilhos e associações do Azure Functions Somente HTTP Tudo
Runtimes do Azure Functions compatíveis1 Confira Linguagens e runtimes com suporte. Tudo
Planos de hospedagem do Azure Functions com suporte Consumo Consumo
Premium
Dedicado
Segurança integrada com acesso direto aos dados de autenticação e autorização baseada em função do usuário
Integração de roteamento, que torna a rota de /api disponível para o aplicativo Web com segurança, sem a necessidade de regras CORS personalizadas.
Modelo de programação de Durable Functions
Identidade gerenciada
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 runtime em funções gerenciadas, adicione um arquivo de configuração ao aplicativo de front-end e defina a propriedade apiRuntime. O suporte está sujeito à política de suporte de runtime de linguagem do Azure Functions.

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

Confira a Visão geral das APIs para obter mais informações.

Configuração

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

Funções gerenciadas Traga suas próprias funções
Embora a rota de /api seja fixa, você tem controle sobre o local da pasta de 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 à rota de /api são enviadas ao aplicativo do Azure Functions existente.

Solução de problemas e logs

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

Funções gerenciadas Traga suas próprias funções
Ative o registro em log habilitando o Application Insights em seu aplicativo Web estático. Ative o registro em log habilitando o Application Insights em seu aplicativo do Azure Functions.

Restrições

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

Funções gerenciadas Traga suas próprias funções
  • Gatilhos e associações são limitados ao HTTP.
  • O aplicativo do Azure Functions deve estar no Node.js 12, Node.js 14, Node.js 16, Node.js 18, Node.js 20 (versão prévia), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.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 marcações de aplicativo são usadas internamente pelo serviço. Portanto, as seguintes marcações são reservadas:
    • AccountId, EnvironmentId, FunctionAppId.
  • Você é responsável por gerenciar a implantação do aplicativo do Functions.

Próximas etapas