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 integrados 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ê fica encarregado de gerenciar uma implantação separada do 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 vínculos do serviço 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 tempo de execução de linguagens 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 para a rota /api são enviadas para o seu aplicativo existente do Azure Functions.

Resolução de problemas e registros

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

Funções gerenciadas Traga suas próprias funções
Ative o log com o Application Insights na sua aplicação web estática. 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 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 do Functions.

Próximas etapas