Compartilhar via


Como hospedar sua carga de trabalho no Azure

Este artigo descreve como hospedar sua carga de trabalho do Fabric Extensibility Toolkit no Azure usando uma arquitetura somente de front-end. O Extensibility Toolkit usa uma abordagem de implantação nativa de nuvem com os serviços do Azure otimizados para aplicativos Web estáticos.

Visão geral da arquitetura

O Fabric Extensibility Toolkit usa uma arquitetura focada na implantação de front-end com os serviços do Azure:

Diagrama de uma arquitetura de implantação do Azure.

Arquitetura do Kit de Ferramentas de Extensibilidade

A arquitetura do Kit de Ferramentas de Extensibilidade inclui as seguintes características:

  • Implementação somente front-end: sua carga de trabalho é executada inteiramente no navegador sem um back-end separado
  • Hospedagem de site estático: usa sites estáticos do Armazenamento do Azure para hospedagem
  • Azure Front Door: fornece CDN global, encerramento de SSL e roteamento
  • Serviços gerenciados: aproveita a ID do Entra, o Key Vault e a Identidade Gerenciada para segurança
  • Processo de implantação única: usa scripts fornecidos do PowerShell para implantação

Serviços do Azure usados

Azure Front Door

O Azure Front Door serve como o ponto de entrada global para sua carga de trabalho. Ele fornece:

  • Balanceamento de carga global: roteia os usuários para o local de borda mais próximo
  • Terminação SSL: manipula certificados HTTPS automaticamente
  • WAF (Firewall de Aplicativo Web): protege contra vulnerabilidades comuns da Web
  • Caching: melhora o desempenho ao armazenar ativos estáticos em locais periféricos.

Para o Kit de Ferramentas de Extensibilidade, o Front Door roteia o tráfego para seu site estático hospedado no Armazenamento do Azure, garantindo alta disponibilidade e baixa latência em todo o mundo.

Conta de Armazenamento do Azure (Site Estático)

Uma Conta de Armazenamento do Azure com hospedagem de site estático hospeda seu aplicativo de carga de trabalho compilado. Isso proporciona:

  • Hospedagem econômica: pagar somente pelo armazenamento e largura de banda usados
  • Dimensionamento automático: manipula picos de tráfego sem configuração
  • Disponibilidade global: o conteúdo é fornecido da infraestrutura de armazenamento global do Azure
  • Implantação baseada em arquivo: carregar arquivos para implantar versões

O Kit de Ferramentas de Extensibilidade cria seu aplicativo React em HTML estático, JavaScript, CSS e ativos que são implantados diretamente na conta de armazenamento.

Azure Key Vault

O Azure Key Vault gerencia segredos e configurações confidenciais:

  • Segredos do cliente: armazena segredos do aplicativo Entra ID com segurança
  • Chaves de API: gerencia chaves de API de serviço externo
  • Configuração: armazena configurações específicas do ambiente
  • Certificados: gerencia certificados SSL, se necessário

Sua carga de trabalho acessa o Key Vault por meio da Identidade Gerenciada para autenticação segura e sem credenciais.

Azure Entra ID (Azure Active Directory)

A ID do Azure Entra fornece autenticação e autorização:

  • Registro de aplicativo: registra sua carga de trabalho como um aplicativo Entra
  • Fluxos do OAuth 2.0: gerencia a autenticação do usuário com Fabric
  • Permissões de API: gerencia o acesso às APIs do Fabric e do Microsoft Graph
  • Gerenciamento de tokens: fornece tokens de acesso seguro para chamadas à API

Identidade Gerenciada

A Identidade Gerenciada fornece autenticação de serviço a serviço segura:

  • Sem gerenciamento de credenciais: elimina a necessidade de armazenar segredos no código
  • Manipulação de token: o Azure manipula a aquisição e a renovação de token
  • Acesso seguro: conecta-se ao Key Vault e a outros serviços do Azure com segurança
  • Ciclo de vida de identidade: vinculado aos recursos do Azure para limpeza

Processo de implantação

Pré-requisitos

Antes de implantar no Azure, verifique se você tem:

  • Assinatura do Azure com permissões apropriadas
  • CLI do Azure instalada e autenticada
  • Repositório do Fabric Extensibility Toolkit clonado localmente
  • Sua carga de trabalho criada usando .\scripts\Build\BuildRelease.ps1

Usando o script de implantação

O Kit de Ferramentas de Extensibilidade inclui um script do PowerShell em scripts\Deploy\DeployToAzureWebApp.ps1 que automatiza o processo de implantação.

Implantação básica

# Deploy to an existing Azure Web App
.\scripts\Deploy\DeployToAzureWebApp.ps1 -WebAppName "my-fabric-workload" -ResourceGroupName "fabric-workload-rg"

Opções de implantação adicionais

# Deploy to staging slot with custom settings
.\scripts\Deploy\DeployToAzureWebApp.ps1 `
    -WebAppName "my-fabric-workload" `
    -ResourceGroupName "fabric-workload-rg" `
    -SlotName "staging" `
    -Force $true `
    -CreateBackup $true `
    -RestartAfterDeploy $true

Parâmetros de script de implantação

Parâmetro Description Obrigatório Padrão
WebAppName Nome do Aplicativo Web do Azure para implantar Yes -
ResourceGroupName Grupo de recursos que contém o aplicativo Web Yes -
ReleasePath Caminho para arquivos de aplicativo criados Não ..\..\release\app
DeploymentMethod Método de implantação (ZipDeploy, FTP, LocalGit) Não ZipDeploy
SlotName Slot de implantação para teste Não -
Force Ignorar mensagens de confirmação Não $false
CreateBackup Criar backup antes da implantação Não $true
RestartAfterDeploy Reiniciar o aplicativo após a implantação Não $true

Recursos de script de implantação

O script de implantação fornece recursos de implantação abrangentes:

Validação e segurança

  • Verificação de pré-requisitos: valida a instalação e a autenticação da CLI do Azure
  • Validação de recursos: confirma se o aplicativo Web de destino existe e está acessível
  • Validação de build: garante que o diretório de versão contenha arquivos necessários
  • Criação de backup: cria um backup de implantação para possibilitar a reversão

Fluxo de trabalho de implantação

  • Criação de pacote ZIP: compacta o aplicativo interno no pacote de implantação
  • Relatório de tamanho: mostra o tamanho do pacote de implantação para verificação
  • Monitoramento de progresso: fornece atualizações de status de implantação em tempo real
  • Tratamento de erros: mensagens de erro detalhadas com diretrizes de solução de problemas

Pós-implantação

  • Verificação de integridade: valida se o aplicativo implantado responde corretamente
  • Relatório de URL: fornece link direto para o aplicativo implantado
  • Diretrizes de manifesto: mostra as próximas etapas para upload de manifesto no Fabric
  • Métricas de tempo: relata a duração total da implantação

Implantação manual

Você também pode implantar seu aplicativo de front-end manualmente usando comandos do Azure PowerShell:

Crie seu aplicativo

Primeiro, crie seu aplicativo de front-end para o ambiente de teste:

npm run build:test

Criar pacote de implantação

  1. Navegue até a build\Frontend pasta em seu projeto
  2. Selecione todos os arquivos e a assets pasta no diretório de build
  3. Criar um .zip arquivo que contém todos os arquivos selecionados

Implantar usando o Azure PowerShell

# Connect to Azure
Connect-AzAccount

# Set your subscription context
Set-AzContext -Subscription "<subscription_id>"

# Deploy the zip file to your web app
Publish-AzWebApp -ResourceGroupName <resource_group_name> -Name <web_app_name> -ArchivePath <zip_file_path>

Parâmetros de implantação manual

Parâmetro Description Example
<subscription_id> Sua ID de assinatura do Azure 12345678-1234-1234-1234-123456789012
<resource_group_name> Grupo de recursos que contém seu aplicativo Web fabric-workload-rg
<web_app_name> Nome do aplicativo Web do Azure my-fabric-workload
<zip_file_path> Caminho completo para o arquivo zip de implantação C:\path\to\deployment.zip

Observação

A implantação manual exige que você tenha as permissões apropriadas do Azure e o módulo do Azure PowerShell instalado em seu computador.

Considerações de segurança

Fluxo de autenticação

Sua carga de trabalho é autenticada com o Fabric usando o fluxo padrão do OAuth 2.0:

  1. O usuário acessa sua carga de trabalho por meio do Fabric
  2. O Fabric redireciona para seu aplicativo hospedado no Azure
  3. Seu aplicativo redireciona para a ID do Entra para autenticação
  4. A ID do Entra retorna o token de autenticação
  5. Seu aplicativo usa token para acessar APIs do Fabric

Configuração segura

  • Variáveis de ambiente: Armazenar configuração nas Configurações do Aplicativo do Azure, não no código
  • Integração do Key Vault: acessar segredos por meio da Identidade Gerenciada
  • Somente HTTPS: impor HTTPS para toda a comunicação
  • Configuração do CORS: configurar políticas de CORS apropriadas para domínios do Fabric

Práticas recomendadas

  • Privilégio mínimo: conceder permissões mínimas necessárias à Identidade Gerenciada
  • Rotação de segredos: renovar periodicamente os segredos armazenados no Key Vault
  • Segurança de rede: usar pontos de extremidade privados sempre que possível
  • Monitoramento: Habilitar o Application Insights para monitoramento de segurança

Configuração após a implantação

Configuração do Serviço de Aplicativo do Azure

Após a implantação, configure o Serviço de Aplicativo do Azure:

# Set environment variables for your workload
az webapp config appsettings set --name "my-fabric-workload" --resource-group "fabric-workload-rg" --settings \
    "FABRIC_CLIENT_ID=your-client-id" \
    "FABRIC_TENANT_ID=your-tenant-id" \
    "KEY_VAULT_URL=https://your-keyvault.vault.azure.net/"

Configuração do Key Vault

Armazene a configuração confidencial no Key Vault:

# Store client secret
az keyvault secret set --vault-name "your-keyvault" --name "FabricClientSecret" --value "your-client-secret"

# Store API keys
az keyvault secret set --vault-name "your-keyvault" --name "ExternalApiKey" --value "your-api-key"

Configuração de Identidade Gerenciada

Configurar a Identidade Gerenciada para acesso ao Key Vault:

# Enable system-assigned managed identity
az webapp identity assign --name "my-fabric-workload" --resource-group "fabric-workload-rg"

# Grant access to Key Vault
az keyvault set-policy --name "your-keyvault" \
    --object-id "managed-identity-principal-id" \
    --secret-permissions get list

Implantação de manifesto

Depois de implantar seu aplicativo no Azure, você deve carregar o pacote de manifesto no Fabric:

Gerar pacote de manifesto

Primeiro, crie o pacote de manifesto:

.\scripts\Build\BuildManifestPackage.ps1

Isso cria um release\ManifestPackage.1.0.0.nupkg contendo o seu manifesto de carga de trabalho.

Carregar no Portal de Administração do Fabric

  1. Abra o Portal de Administração do Microsoft Fabric
  2. Navegue até Gerenciamento de Carga de Trabalho>Fazer upload da carga de trabalho
  3. Carregar seu ManifestPackage.1.0.0.nupkg arquivo
  4. Definir as configurações e permissões da carga de trabalho
  5. Ativar a carga de trabalho para seu locatário

Atualizar manifesto para implantação do Azure

Antes de criar seu pacote de manifesto para implantação do Azure, verifique se os valores em seu .env arquivo (como FRONTEND_URL, FRONTEND_APPIDe quaisquer outras variáveis necessárias) estão definidos corretamente para seu ambiente do Azure. Esses valores serão substituídos em seu WorkloadManifest.xml durante o processo de compilação.

Para obter uma lista completa de variáveis de ambiente necessárias e diretrizes sobre como defini-las, consulte os requisitos gerais de publicação.

Monitoramento e solução de problemas

Application Insights

Habilite o *Application Insights* para o monitoramento:

  • Monitoramento de desempenho: acompanhar os tempos de carregamento da página e as interações do usuário
  • Acompanhamento de erros: monitorar erros do JavaScript e solicitações com falha
  • Análise de uso: entenda como os usuários interagem com sua carga de trabalho
  • Telemetria personalizada: adicionar métricas personalizadas para a lógica de negócios

Problemas comuns e soluções

Falhas de implantação

  • Erros de autenticação: Verifique o login da CLI do Azure com az account show
  • Recurso não encontrado: confirme se o nome do aplicativo Web e o grupo de recursos estão corretos
  • Permissão negada: verifique se sua conta tem a função Colaborador no grupo de recursos

Observação

Erro: a URI de Frontend não está na lista de domínios do locatário: esse erro significa que o domínio personalizado da carga de trabalho não está registrado na lista de domínios aceitos do locatário do Entra ID. Para resolver, adicione seu domínio personalizado à ID do Entra. Para obter mais informações, consulte Verificação de Domínio Personalizado nos requisitos gerais de publicação.

Problemas de runtime

  • Tela branca: verificar se há erros de JavaScript no console do navegador
  • Falhas de autenticação: Verificar o registro do aplicativo Entra ID e os URIs de redirecionamento
  • Falhas de chamada à API: verificar a configuração do CORS e as permissões de API

Otimização de desempenho

  • Carregamento lento: habilitar a compactação e otimizar o tamanho do pacote
  • Problemas de cache: configurar cabeçalhos de cache adequados no Front Door
  • Latência geográfica: verifique se o Front Door está configurado corretamente para roteamento global