Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
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
- Navega até à
build\Frontendpasta no teu projeto - Selecione todos os ficheiros e a
assetspasta sob o diretório de construção - Crie um
.zipficheiro 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:
- O utilizador acede à sua carga de trabalho através do Fabric
- O Fabric redireciona para a sua aplicação alojada no Azure
- A sua aplicação redireciona para o Entra ID para autenticação
- O Entra ID devolve o token de autenticação
- 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
- Abra o Portal de Administração do Microsoft Fabric
- Navegar para Gestão de Workloads>Carregar workload
- Carregue o seu
ManifestPackage.1.0.0.nupkgficheiro - Configurar definições de carga de trabalho e permissões
- 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
Guias relacionados
- Como publicar e gerir uma carga de trabalho - Carregar manifestos para o Fabric
- Guia de Configuração - Configuração inicial do ambiente de desenvolvimento
- Tutorial: Começar - Começar com o Toolkit de Extensibilidade