Traga suas próprias funções para os Aplicativos Web Estáticos do Azure
Os Aplicativos Web Estáticos do Azure fornecem integração de API para permitir que você crie aplicativos Web front-end que dependem de APIs de back-end para dados e serviços. As duas opções de integração de API são: funções gerenciadas e trazer seus próprios back-ends. Para obter mais informações sobre as diferenças entre essas opções, consulte a visão geral.
Este artigo demonstra como vincular um aplicativo existente do Azure Functions a um recurso dos Aplicativos Web Estáticos do Azure.
Observação
A integração com o Azure Functions requer o plano Static Web Apps Standard.
Não há suporte para a integração de back-end em ambientes de solicitação pull de Aplicativos Web Estáticos.
Pré-requisitos
Para vincular um aplicativo de função ao seu aplicativo Web estático, você precisa ter um recurso existente do Azure Functions e um aplicativo Web estático.
Recurso | Descrição |
---|---|
Azure Functions | Se você ainda não tiver um, siga as etapas no guia Introdução ao Azure Functions . |
Aplicativo Web estático existente | Se você ainda não tiver um aplicativo Web estático, siga as etapas no guia de introdução para criar um sem estrutura. |
Exemplo
Considere um aplicativo existente do Azure Functions que expõe um ponto de extremidade por meio do local a seguir.
https://my-functions-app.azurewebsites.net/api/getProducts
Depois de vinculado, você pode acessar esse mesmo ponto de extremidade por meio do caminho api
do seu aplicativo Web estático, conforme mostrado nesta URL de exemplo.
https://red-sea-123.azurestaticapps.net/api/getProducts
Ambas as URLs do ponto de extremidade apontam para a mesma função. O ponto de extremidade no aplicativo de função deve ter o prefixo, já que os Aplicativos Web Estáticos correspondem às solicitações feitas e /api
fazem proxy de todo o caminho para o /api
recurso vinculado.
Vincular um aplicativo existente do Azure Functions
Remover funções gerenciadas do recurso Aplicativos Web Estáticos (se houver)
Antes de associar um aplicativo Functions existente, primeiro você precisa ajustar a configuração do seu aplicativo Web estático para remover funções gerenciadas, se houver.
- Defina o valor
api_location
como uma cadeia de caracteres vazia (""
) no arquivo de configuração de fluxo de trabalho.
Vincular o aplicativo Azure Functions ao recurso Aplicativos Web Estáticos
Abra sua instância dos Aplicativos Web Estáticos no portal do Azure.
No menu Configurações, selecione APIs.
Na linha Produção, selecione Link para abrir a janela Vincular novo back-end.
Insira as configurações a seguir.
Configuração Valor Tipo de recurso de back-end Selecione Aplicativo de funções. Subscription Selecione o nome da sua assinatura do Azure. Nome do recurso Selecione o nome do aplicativo Azure Functions. Slot de back-end Selecione o nome do slot para a Função do Azure. Selecione Vincular.
O aplicativo Azure Functions agora está mapeado para a rota /api
do aplicativo Web estático.
Importante
Certifique-se de definir o valor api_location
como uma cadeia de caracteres vazia (""
) no arquivo de configuração de fluxo de trabalho antes de vincular um aplicativo do Functions existente. Além disso, as chamadas pressupõem que o aplicativo de funções externas mantenha o prefixo de rota padrão api
. Muitos aplicativos removem esse prefixo no host.json. Verifique se o prefixo está em vigor na configuração, caso contrário, a chamada falhará.
Implantação
Você é responsável por configurar um fluxo de trabalho de implantação para seu aplicativo do Azure Functions.
Desvincular um aplicativo do Azure Functions
Desvincular o aplicativo Functions de Aplicativos Web Estáticos
Para desvincular um aplicativo de função de um aplicativo Web estático, siga estas etapas:
No portal do Azure, navegue até o aplicativo Web estático.
Selecione APIs no menu de navegação.
Localize o ambiente que você deseja desvincular e selecione o nome do aplicativo de função.
Selecione Desvincular.
Quando o processo de desvinculação estiver concluído, as solicitações para rotas que começam com /api
não serão mais intermediadas por proxy para seu aplicativo do Azure Functions.
Observação
Para evitar a exposição acidental do aplicativo de função ao tráfego anônimo, o provedor de identidade criado pelo processo de vinculação não é excluído automaticamente. Você pode excluir o provedor de identidade chamado Aplicativos Web Estáticos do Azure (Vinculados) das configurações de autenticação do aplicativo de função.
Remover a autenticação do recurso Azure Functions
Para habilitar seu aplicativo Azure Functions para receber tráfego anônimo, siga estas etapas para remover o provedor de identidade:
No portal do Azure, navegue até o recurso Azure Functions.
Selecione Autenticação no menu de navegação.
Na lista de provedores de identidade, exclua o provedor de identidade relacionado ao recurso Aplicativos Web estáticos.
Selecione Remover autenticação para remover a autenticação e permitir tráfego anônimo para seu recurso do Azure Functions.
Seu aplicativo de função agora é capaz de receber tráfego anônimo.
Restrições de segurança
Autenticação e autorização: Se as políticas de autenticação e autorização ainda não estiverem configuradas em seu aplicativo do Functions existente, o aplicativo Web estático terá acesso exclusivo à API. Para tornar seu aplicativo do Functions acessível a outros aplicativos, adicione outro provedor de identidade ou altere as configurações de segurança para permitir o acesso não autenticado.
Observação
Se você habilitar a autenticação e a autorização no aplicativo de funções vinculado, ele precisará usar o provedor de autorização e de Autenticação do Serviço de Aplicativo do Azure versão 2.
Acessibilidade pública necessária: Um aplicativo do Functions existente não precisa aplicar as seguintes configurações de segurança.
- Restringir o endereço IP do aplicativo do Functions.
- Restringir o tráfego por meio de link privado ou pontos de extremidade de serviço.
Chaves de acesso de função: Se sua função exigir uma chave de acesso, você deverá fornecê-la com chamadas do aplicativo estático para a API.
Restrições
- Apenas um aplicativo do Azure Functions está disponível para um único aplicativo Web estático.
- O valor
api_location
na configuração do fluxo de trabalho deve ser definido como uma cadeia de caracteres vazia. - Não há suporte em ambientes de solicitação de pull de Aplicativos Web Estáticos.
- Embora seu aplicativo do Azure Functions possa responder a vários gatilhos, o aplicativo Web estático só pode acessar funções por meio de pontos de extremidade http.