Partilhar via


Como alojar a sua carga de trabalho no Azure

Este artigo descreve como alojar a sua carga de trabalho do Fabric Extensibility Toolkit no Azure usando uma arquitetura apenas frontend. O Extensibility Toolkit utiliza uma abordagem de implementação cloud-native com serviços Azure otimizados para aplicações web estáticas.

Visão geral da arquitetura

O Fabric Extensibility Toolkit utiliza uma arquitetura focada na implementação frontend com serviços Azure:

Diagrama de uma arquitetura de implementação Azure.

Arquitetura do Kit de Ferramentas de Extensibilidade

A arquitetura do Extensibility Toolkit inclui as seguintes características:

  • Implantação apenas de frontend: A sua carga de trabalho executa-se inteiramente no navegador, sem um backend separado
  • Alojamento estático de websites: Utiliza sites estáticos Azure Storage para alojamento
  • Azure Front Door: Fornece CDN global, terminação SSL e encaminhamento
  • Serviços geridos: Utiliza Entra ID, Key Vault e Managed Identity para segurança
  • Processo de implementação única: Utiliza scripts PowerShell fornecidos para implementação

Serviços do Azure usados

Azure Front Door

O Azure Front Door serve como o ponto de entrada global para a sua carga de trabalho. Dispõe o seguinte:

  • Balanceamento global de carga: Encaminha os utilizadores para a localização de extremidade mais próxima
  • Terminação SSL: Trata automaticamente dos certificados HTTPS
  • Firewall de Aplicações Web (WAF): Protege contra vulnerabilidades web comuns
  • Armazenamento em cache: Melhora o desempenho ao armazenar em cache recursos estáticos em localizações de borda

Para o Extensibility Toolkit, o Front Door encaminha o tráfego para o seu site estático alojado no Azure Storage, garantindo alta disponibilidade e baixa latência em todo o mundo.

Azure Storage Account (site estático)

Uma Conta de Armazenamento Azure com alojamento estático do site aloja a sua aplicação de carga de trabalho construída. Isto prevê:

  • Alojamento económico: Pague apenas pelo armazenamento e largura de banda utilizada
  • Escalabilidade automática: Lida com picos de tráfego sem configuração
  • Disponibilidade global: O conteúdo é servido a partir da infraestrutura global de armazenamento do Azure
  • Implementação baseada em ficheiros: Carregar ficheiros para as versões de implementação

O Extensibility Toolkit constrói a sua aplicação React em HTML estático, JavaScript, CSS e ativos que são implementados diretamente na conta de armazenamento.

Azure Key Vault

O Azure Key Vault gere configurações sensíveis e segredos:

  • Segredos do cliente: Armazena segredos da aplicação Entra ID de forma segura
  • Chaves API: Gerir chaves de API de serviços externos
  • Configuração: Armazena definições específicas do ambiente
  • Certificados: Gerir certificados SSL se necessário

A sua carga de trabalho acede ao Key Vault através da Identidade Gerida para autenticação segura e sem credenciais.

Azure Entra ID (Azure Active Directory)

O Azure Entra ID fornece autenticação e autorização:

  • Registo de aplicações: Regista a sua carga de trabalho como uma aplicação Entra
  • Fluxos OAuth 2.0: Gerir a autenticação do utilizador com Fabric
  • Permissões da API: Gerir o acesso às APIs do Fabric e Microsoft Graph
  • Gestão de tokens: Fornece tokens de acesso seguros para chamadas API

Identidade gerenciada

A Identidade Gerida fornece autenticação segura entre serviços:

  • Sem gestão de credenciais: Elimina a necessidade de guardar segredos no código
  • Gestão de tokens: Azure trata da aquisição e renovação de tokens
  • Acesso seguro: Liga-se ao Key Vault e a outros serviços Azure de forma segura
  • Ciclo de vida da identidade: Ligado aos seus recursos da Azure para a limpeza

Processo de implementação

Pré-requisitos

Antes de implementar no Azure, certifique-se de que tem:

  • Subscrição Azure com permissões apropriadas
  • Azure CLI instalado e autenticado
  • Repositório Fabric Extensibility Toolkit clonado localmente
  • A tua carga de trabalho foi construída usando .\scripts\Build\BuildRelease.ps1

Utilização do script de implementação

O Extensibility Toolkit inclui um script de implementação do PowerShell em scripts\Deploy\DeployToAzureWebApp.ps1 que automatiza o processo de implementaçã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 adicionais de implantação

# 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 do script de implementação

Parâmetro Description Obrigatório Predefinido
WebAppName Nome da Azure Web App para implementar Yes -
ResourceGroupName Grupo de recursos que contém a Aplicação Web Yes -
ReleasePath Caminho para ficheiros de aplicação compilados Não ..\..\release\app
DeploymentMethod Método de implementação (ZipDeploy, FTP, LocalGit) Não ZipDeploy
SlotName Slot de implantação para pré-produção Não -
Force Saltar avisos de confirmação Não $false
CreateBackup Criar backup antes da implementação Não $true
RestartAfterDeploy Reiniciar a aplicação após a implementação Não $true

Funcionalidades do script de implementação

O script de implementação oferece capacidades abrangentes de implementação:

Validação e segurança

  • Verificação de pré-requisitos: Valida a instalação e autenticação do Azure CLI
  • Validação de recursos: Confirma que a aplicação Web alvo existe e é acessível
  • Validação de compilação: Garante que o diretório de lançamento contém os ficheiros necessários
  • Criação de backup: Cria backup de implementação para funcionalidades de reversão

Fluxo de trabalho de implantação

  • Criação de pacote ZIP: Comprime a aplicação integrada num pacote de implementação
  • Relatório de tamanhos: Indica o tamanho do pacote de implementação para verificação
  • Monitorização do progresso: Fornece atualizações em tempo real sobre o estado da implementação
  • Tratamento de erros: Mensagens de erro detalhadas com orientações de resolução de problemas

Pós-implementação

  • Verificação de saúde: Valida a resposta correta da aplicação implementada
  • Relatórios de URL: Fornece ligação direta para a aplicação implementada
  • Orientação do manifesto: Mostra os próximos passos para o upload do manifesto no Fabric
  • Métricas de temporização: Reporta a duração total da implementação

Implementação manual

Também pode implementar manualmente a sua aplicação frontend usando comandos Azure PowerShell:

Compilar a aplicação

Primeiro, construa a sua aplicação frontend para o ambiente de teste:

npm run build:test

Criar pacote de implementação

  1. Navega até à build\Frontend pasta no teu projeto
  2. Selecione todos os ficheiros e a assets pasta sob o diretório de construção
  3. Crie um .zip ficheiro contendo todos os ficheiros selecionados

Deploy usando 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 a sua aplicação web fabric-workload-rg
<web_app_name> Nome da tua aplicação web Azure my-fabric-workload
<zip_file_path> Caminho completo para o seu ficheiro zip de implementação C:\path\to\deployment.zip

Observação

A implementação manual requer que tenha as permissões apropriadas do Azure e o módulo Azure PowerShell instalados na sua máquina.

Considerações de segurança

Fluxo de autenticação

A sua carga de trabalho autentica-se com o Fabric usando o fluxo padrão OAuth 2.0:

  1. O utilizador acede à sua carga de trabalho através do Fabric
  2. O Fabric redireciona para a sua aplicação alojada no Azure
  3. A sua aplicação redireciona para o Entra ID para autenticação
  4. O Entra ID devolve o token de autenticação
  5. A sua aplicação usa token para aceder às APIs do Fabric

Configuração segura

  • Variáveis de ambiente: Armazenar a configuração nas Definições da App Azure, não em código
  • Integração com o Key Vault: Aceder a segredos através da Identidade Gerida
  • Apenas HTTPS: Aplicar HTTPS para toda a comunicação
  • Configuração CORS: Configurar políticas CORS apropriadas para domínios Fabric

Melhores práticas

  • Privilégio mínimo: Conceder permissões mínimas necessárias à Identidade Gerida
  • Rotação de segredos: Rodar regularmente segredos guardados no Cofre da Chave
  • Segurança de rede: Use Endpoints Privados sempre que possível
  • Monitorização: Ativar Application Insights para monitorização de segurança

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

Configuração do Azure App Service

Após a implementação, configure o seu Azure App Service:

# 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 Cofre da Chave

Armazenar configurações sensíveis 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 Gerida

Configurar a Identidade Gerida 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

Implementação do manifesto

Depois de implementar a sua aplicação no Azure, deve carregar o pacote de manifestos para o Fabric:

Pacote de manifestos de construção

Primeiro, constrói o pacote manifest:

.\scripts\Build\BuildManifestPackage.ps1

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

Carregar para o Portal de Administração do Fabric

  1. Abra o Portal de Administração do Microsoft Fabric
  2. Navegar para Gestão de Workloads>Carregar workload
  3. Carregue o seu ManifestPackage.1.0.0.nupkg ficheiro
  4. Configurar definições de carga de trabalho e permissões
  5. Ative a carga de trabalho do seu locatário

Atualizar o manifesto para implementação no Azure

Antes de compilar o seu pacote de manifestos para a implementação do Azure, certifique-se de que os valores no seu .env ficheiro (como FRONTEND_URL, FRONTEND_APPID, e quaisquer outras variáveis necessárias) estão corretamente definidos para o seu ambiente Azure. Estes valores serão substituídos no seu WorkloadManifest.xml durante o processo de compilação.

Para uma lista completa das variáveis de ambiente necessárias e orientações sobre como as definir, consulte os Requisitos Gerais de Publicação.

Monitorizar e resolver problemas

Application Insights

Ative o Application Insights para monitorização:

  • Monitorização de desempenho: Acompanhar os tempos de carregamento da página e as interações com o utilizador
  • Rastreio de erros: Monitorizar erros JavaScript e pedidos falhados
  • Análise de utilização: Compreenda como os utilizadores interagem com a sua carga de trabalho
  • Telemetria personalizada: Adicionar métricas personalizadas para lógica de negócio

Problemas e soluções comuns

Falhas de implementação

  • Erros de autenticação: Verificar o login da Azure CLI com az account show
  • Recurso não encontrado: Confirme que o nome da Web App e o grupo de recursos estão corretos
  • Permissão negada: Assegure que a sua conta tem o papel de Contribuinte no grupo de recursos

Observação

Erro: O URI do Frontend não está na lista de domínios do tenant: Este erro significa que o domínio personalizado do seu workload não está registado na lista de domínios aceites do seu tenant Entra ID. Para resolver, adicione o seu domínio personalizado ao Entra ID. Para mais informações, consulte Verificação de Domínio Personalizada nos requisitos gerais de publicação.

Problemas de execução

  • Ecrã branco: Verifique a consola do navegador para erros de JavaScript
  • Falhas de autenticação: Verificar o registo da aplicação Entra ID e redirecionar URIs
  • Falhas nas chamadas de API: Verifique a configuração do CORS e as permissões da API

Otimização do desempenho

  • Carregamento lento: Permitir compressão e otimizar o tamanho do pacote
  • Problemas de cache: Configurar cabeçalhos de cache adequados no Front Door
  • Latência geográfica: Garantir que o Front Door está devidamente configurado para o encaminhamento global