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 documento fornece um resumo detalhado do que está incluído no modelo de implantação de hubs FinOps. Você pode usar isso como um guia para ajustar sua implantação ou para informar personalizações que você pode fazer no modelo para atender às suas necessidades organizacionais. Este documento explica os pré-requisitos necessários para implantar o modelo, os parâmetros de entrada que você pode personalizar, os recursos que serão implantados e as saídas do modelo. As saídas de modelo podem ser usadas para se conectar às instâncias do hub no Power BI, no Data Explorer ou em outras ferramentas.
Os hubs FinOps incluem muitos recursos para oferecer uma plataforma FinOps segura e escalável. Os principais recursos com os quais irá interagir incluem:
- Data Explorer (Kusto) como um armazenamento de dados escalável para análise avançada (opcional).
- Conta de armazenamento (Data Lake Storage Gen2) como uma área de preparo para ingestão de dados.
- Instância do Data Factory para gerenciar a ingestão e a limpeza de dados.
Importante
Para usar o modelo, você precisa criar exportações do Gerenciamento de Custos para publicar dados no contêiner de msexports na conta de armazenamento incluída. Para obter mais informações, consulte Criar um novo hub.
Pré-requisitos
Certifique-se de que os seguintes pré-requisitos sejam atendidos antes de implantar o modelo:
Você deve ter as seguintes permissões para criar os recursos implantados.
Recurso RBAC mínimo do Azure Implantar e configurar o Data Factory¹ Colaborador do Data Factory Implantar o Cofre da Chave (somente hub remoto)¹ Contribuidor do Key Vault Configurar os segredos do Azure Key Vault (apenas no hub remoto)¹ Administrador do Cofre de Chaves Criar identidade gerenciada¹ Contribuidor de identidade gerenciada Implantar e configurar o armazenamento¹ Contribuidor da Conta de Armazenamento Atribuir identidade gerenciada a recursos¹ Operador de identidade gerenciada Criar scripts de implantação¹ Função personalizada contendo apenas as permissões Microsoft.Resources/deploymentScripts/writeeMicrosoft.ContainerInstance/containerGroups/writecomo ações permitidas ou, alternativamente, Colaborador, que inclui estas permissões e todas as funções mencionadas acima.Atribuir permissões a identidades gerenciadas¹ Administrador de Controle de Acesso Baseado em Função ou, alternativamente, Proprietário, que inclui essa função e todas as funções acima Criar uma exportação de custos para uma assinatura ou grupo de recursos Colaborador de Gestão de Custos Criar uma exportação de custos de faturação EA² Leitor Empresarial, Leitor de Departamento ou Proprietário da Conta de Inscrição (Saiba mais) Criar uma exportação de custos de faturação MCA² Colaborador Ler dados de blob no armazenamento³ Contribuidor de Dados de Blobs de Armazenamento ¹ Basta atribuir permissões de implantação de recursos de hubs ao nível do grupo de recursos.
² As permissões de Gerenciamento de Custos devem ser atribuídas no escopo de onde você deseja exportar seus custos.
³ As permissões de dados de Blob são necessárias para acessar dados de custo exportados do Power BI ou de outras ferramentas de cliente.Você deve ter permissões para atribuir as seguintes funções a identidades gerenciadas como parte da implantação:
Função RBAC do Azure Observações Colaborador do Data Factory Atribuído à identidade do gerenciador de gatilhos de implantação para iniciar automaticamente os gatilhos do Data Factory. Leitor Atribuído ao Data Factory para gerenciar dados em armazenamento. Contribuidor da Conta de Armazenamento Atribuído ao Data Factory para gerenciar dados em armazenamento. Contribuidor de Dados de Blobs de Armazenamento Atribuído ao Data Factory e ao Data Explorer para gerenciar dados em armazenamento. Contribuidor Privilegiado de Dados de Ficheiros de Armazenamento Atribuído à identidade de carregamento do arquivo de implantação que carrega arquivos no contêiner de configuração. Administrador de Acesso de Usuário Atribuído ao Data Factory para gerenciar dados em armazenamento. O provedor de recursos Microsoft.EventGrid deve estar registrado em sua assinatura. Para obter mais informações, consulte Registrar um provedor de recursos.
Importante
Se te esqueceres desta etapa, a implantação será bem-sucedida, mas o gatilho da linha de montagem não se iniciará e os dados não ficarão prontos. Para obter mais informações, consulte Solução de problemas de relatórios do Power BI.
Parâmetros
Aqui estão os parâmetros que você pode usar para personalizar a implantação:
| Parâmetro | Tipo | Descrição | valor por defeito |
|---|---|---|---|
| Nome do hub | Cordão | Opcional. Nome do hub. Utilizado para garantir nomes exclusivos de recursos. | "Finops-Hub" |
| localização | Cordão | Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. | O mesmo que a implementação |
| storageSku | Cordão | Opcional. SKU de armazenamento a utilizar. LRS = Menor custo, ZRS = Alta disponibilidade. Observação: SKUs Standard não estão disponíveis para armazenamento Data Lake gen2. Permitido: Premium_LRS, Premium_ZRS. |
"Premium_LRS" |
| dataExplorerName | Cordão | Opcional. Nome do cluster do Azure Data Explorer a ser usado para análises avançadas. Se estiver vazio, o Azure Data Explorer não será implantado. Necessário usar com o Power BI se tiver mais de 2-5 milhões de dólares por mês em custos sob monitorização. Padrão: "" (não usar). | |
| dataExplorerSkuName | Cordão | Opcional. Nome da SKU do Azure Data Explorer. Padrão: "Dev(Sem SLA)_Standard_E2a_v4". | |
| dataExplorerSkuTier | Cordão | Opcional. Nível de SKU para o cluster do Azure Data Explorer. Utilize o Basic para o menor custo sem SLA, devido à presença de um único nó. Use Standard para alta disponibilidade e melhor desempenho. Valores permitidos: Básico, Padrão. Padrão: "Básico". | |
| dataExplorerSkuCapacity | int | Opcional. Número de nós a serem usados no cluster. Valores permitidos: 1 para a camada SKU Básica e 2-1000 para Standard. Padrão: 1. | |
| etiquetas | Objeto | Opcional. Etiquetas para aplicar a todos os recursos. Também adicionaremos a tag cm-resource-parent para roll-ups de custos aprimorados na Gestão de Custos. |
|
| tagsByResource | Objeto | Opcional. Tags a serem aplicadas a recursos com base em seu tipo de recurso. As tags específicas do tipo de recurso serão mescladas com as tags para todos os recursos. | |
| escoposParaMonitorizar | Matriz | Opcional. Lista de IDs de escopo para monitorizar e analisar custo. | |
| exportRetentionInDays | int | Opcional. Número de dias de dados a serem retidos no contêiner msexports. | 0 |
| ingestãoRetençãoInMeses | int | Opcional. Número de meses de dados a reter no recipiente de ingestão. | 13 |
| retençãoDeRegistoDoExploradorDeDadosEmDias | int | Opcional. Número de dias de dados a reter nas tabelas do Data Explorer *_log. | 0 |
| dataExplorerRetençãoFinalEmMeses | int | Opcional. Número de meses de dados a reter nas tabelas do Data Explorer *_final_v*. | 13 |
| remoteHubStorageUri | Cordão | Opcional. Conta de armazenamento para transmissão de dados para ingestão num hub remoto. | |
| remoteHubStorageKey | Cordão | Opcional. Chave de conta de armazenamento a ser usada ao enviar dados por push para um hub remoto. | |
| ativarAcessoPúblico | corda | Opcional. Desative o acesso público ao data lake (firewall de armazenamento). | Verdade |
| prefixoDeEndereçoDaRedeVirtual | Cordão | Opcional. Intervalo de endereços de IP para a rede virtual privada utilizada pelos hubs FinOps.
/26 é recomendado para evitar o desperdício de IPs. Internamente, as seguintes sub-redes serão criadas: /28 para pontos de extremidade privados, outra sub-rede /28 para scripts de implantação temporários (instâncias de contêiner) e /27 para o Azure Data Explorer, se habilitado. |
'10.20.30.0/26' |
Recursos
Os recursos a seguir são criados no grupo de recursos de destino durante a implantação.
Os recursos usam a seguinte convenção de nomenclatura: <hubName>-<purpose>-<unique-suffix>. Os nomes são ajustados para levar em conta as restrições de comprimento e caracteres. O <unique-suffix> é usado para garantir que os nomes de recursos sejam globalmente exclusivos, quando necessário.
-
<hubName>store<unique-suffix>conta de armazenamento (Data Lake Storage Gen2)- Contêineres de blob
-
msexports– Armazena temporariamente as exportações de Gestão de Custos. -
ingestion– Armazena dados ingeridos. -
config– Armazena metadados de hub e definições de configuração. Ficheiros:-
settings.json– Configurações do Hub. -
schemas/focuscost_1.0.json– Definição do esquema FOCUS 1.0 para conversão de parquet. -
schemas/focuscost_1.0-preview(v1).json– Definição do esquema FOCUS 1.0-preview para conversão de parquet. -
schemas/pricesheet_2023-05-01_ea.json– Tabela de preços Versão da definição do esquema EA 2023-05-01 para conversão para parquet. -
schemas/pricesheet_2023-05-01_mca.json– Definição do esquema de folha de preços MCA versão 2023-05-01 para conversão em parquet. -
schemas/reservationdetails_2023-03-01.json– Definição do esquema de detalhes da reserva versão 2023-03-01 para conversão de parquet. -
schemas/reservationrecommendations_2023-05-01_ea.json– Recomendações de reserva Definição do esquema EA versão 2023-05-01 para conversão em parquet. -
schemas/reservationrecommendations_2023-05-01_mca.json– Recomendações de reserva para a definição do esquema MCA, versão 2023-05-01, para conversão em parquet. -
schemas/reservationtransactions_2023-05-01_ea.json– Definição do esquema EA de transações de reserva versão 2023-05-01 para conversão para parquet. -
schemas/reservationtransactions_2023-05-01_mca.json– Transações de reserva, definição de esquema MCA versão 2023-05-01 para conversão parquet.
-
-
- Contêineres de blob
-
<hubName>script<unique-suffix>conta de armazenamento (Data Lake Storage Gen2) para scripts de implementação. -
<hubName>-engine-<unique-suffix>Instância do Data Factory- Gasodutos:
-
config_InitializeHub– Inicializa (ou atualiza) a instância do hub FinOps após a implantação. -
config_ConfigureExports– Cria exportações de Gestão de Custos para todos os âmbitos. -
config_StartBackfillProcess– Executa o processo de backfill para cada mês com base nas configurações de retenção. -
config_RunBackfillJob– Cria e aciona exportações para todos os escopos definidos para o intervalo de datas especificado. -
config_StartExportProcess– Obtém uma lista de todas as exportações do Cost Management configuradas para este hub com base nos escopos definidos em settings.json e, em seguida, executa cada exportação usando o pipeline de config_RunExportJobs. -
config_RunExportJobs– Executa as exportações de Gestão de Custos especificadas. -
msexports_ExecuteETL– Enfileira o pipeline para levar em conta os limites de gatilhomsexports_ETL_ingestiondo pipeline do Data Factory. -
msexports_ETL_ingestion– Converte as exportações de Gestão de Custos em parquet e elimina os dados históricos duplicados presentes em cada exportação diária. -
ingestion_ExecuteETL– Enfileira o pipeline para levar em conta os limites de gatilhoingestion_ETL_dataExplorerdo pipeline do Data Factory. -
ingestion_ETL_dataExplorer– Ingere dados de Parquet em um cluster do Azure Data Explorer.
-
- Gatilhos:
-
config_SettingsUpdated– Aciona oconfig_ConfigureExportspipeline quando settings.json é atualizado. -
config_DailySchedule– Aciona oconfig_RunExportJobspipeline diariamente para os dados de custo deste mês. -
config_MonthlySchedule– Aciona mensalmente oconfig_RunExportJobspipeline para processar os dados de custo do mês anterior. -
msexports_ManifestAdded– Aciona o pipeline quando asmsexports_ExecuteETLexportações do Gerenciamento de Custos são concluídas. -
ingestion_ManifestAdded– Aciona o pipelineingestion_ExecuteETLquando ficheiros manifest.json são adicionados (manipulados pelo pipelinemsexports_ETL_ingestion).
-
- Pontos finais privados geridos
-
<hubName>store<unique-suffix>- Ponto de extremidade privado gerido para conta de armazenamento. -
<hubName>-vault-<unique-suffix>- Ponto de extremidade privado gestido para o Azure Key Vault.
-
- Gasodutos:
-
<hubName>-vault-<unique-suffix>Instância do Cofre de Chaves (incluída apenas quando implementada como um hub remoto)- Segredos:
- Identidade gerenciada do sistema Data Factory
- Segredos:
-
<dataExplorerName>cluster de Data Explorer-
Hubbase de dados – Funções voltadas para o utilizador para abstrair os componentes internos.- Inclui 2 conjuntos de funções:
- Funções específicas do conjunto de dados para a versão FOCUS suportada mais recente (por exemplo,
Costs,Prices). - Funções específicas do conjunto de dados para cada versão FOCUS suportada (por exemplo,
Costs_v1_0para FOCUS 1.0). Essas funções são fornecidas para compatibilidade com versões anteriores. Todas as funções retornam todos os dados alinhados à versão FOCUS de destino.
- Funções específicas do conjunto de dados para a versão FOCUS suportada mais recente (por exemplo,
- Os conjuntos de dados incluem:
Costs,Prices. - As versões FOCUS suportadas incluem:
v1_0.
- Inclui 2 conjuntos de funções:
-
Ingestionbanco de dados – Armazena dados ingeridos.- Configurações:
-
HubSettingsLogtabela – Armazena um histórico de alterações de configuração de alto nível (por exemplo, versões, escopos). - Função
HubSettings– Obtém a versão mais recente das configurações da instância do hub. - Função
HubScopes– Obtém os escopos atualmente configurados para esta instância de hub.
-
- Dados abertos:
-
PricingUnitstabela – ficheiro de mapeamento PricingUnits do kit de ferramentas FinOps. Usado para normalização e limpeza de dados. -
Regionstabela – arquivo de mapeamento de regiões do kit de ferramentas FinOps. Usado para normalização e limpeza de dados. -
ResourceTypestabela – arquivo de mapeamento ResourceTypes do kit de ferramentas FinOps. Usado para normalização e limpeza de dados. -
Servicestabela – arquivo de mapeamento de Serviços do conjunto de ferramentas FinOps. Usado para normalização e limpeza de dados. - Função
resource_type– Função simples para mapear IDs de tipo de recurso interno para exibir nomes com base no arquivo de mapeamento ResourceTypes.- Use esta função para mapear um único valor e unir com a tabela
ResourceTypespara atualizar muitas linhas ou mapear outros valores.
- Use esta função para mapear um único valor e unir com a tabela
-
- Conjuntos de dados:
- Tabela
<dataset>_raw– Dados brutos diretamente da fonte de aquisição. Usa um esquema de união para dados de várias fontes. - Função
<dataset>_transform_vX_Y– Normaliza e limpa dados brutos para alinhar à versão FOCUS de destino usando tabelas de dados abertos, conforme necessário. -
<dataset>_final_vX_Ytable – Versão limpa da tabela bruta correspondente alinhada à versão FOCUS de destino. Preenchido por meio de uma política de atualização que utiliza a função de transformação correspondente quando os dados são inseridos em tabelas brutas.
- Tabela
- Configurações:
-
Além das informações anteriores, os recursos a seguir são criados para automatizar o processo de implantação. Os scripts de implantação devem ser excluídos automaticamente. No entanto, não exclua as identidades gerenciadas, pois isso pode causar erros ao atualizar para a próxima versão.
- Identidades gerenciadas:
-
<storage>_blobManager(Storage Blob Data Contributor) – Carrega o arquivo settings.json. -
<datafactory>_triggerManager(Colaborador do Data Factory) – Interrompe os gatilhos antes da implantação e os inicia após a implantação.
-
- Scripts de implantação (excluídos automaticamente após uma implantação bem-sucedida):
-
<datafactory>_deleteOldResources– Exclui recursos não utilizados de implantações anteriores de hubs FinOps. -
<datafactory>_stopTriggers– Interrompe todos os gatilhos no hub usando a identidade triggerManager. -
<datafactory>_startTriggers– Inicia todos os gatilhos no hub usando a identidade triggerManager. -
<storage>_uploadSettings– Carrega o arquivo settings.json usando a identidade blobManager.
-
Saídas
Aqui estão as saídas geradas pela implantação:
| Saída | Tipo | Descrição | Valor |
|---|---|---|---|
| Nome | Cordão | Nome do grupo de recursos. | |
| localização | Cordão | Os recursos de localização de recursos do Azure foram implantados em. | |
| dataFactoryName | Cordão | Nome do Data Factory. | |
| storageAccountId | Cordão | Identificador de recurso da conta de armazenamento implantado. | |
| storageAccountName | Cordão | Nome da conta de armazenamento criada para a instância do hub. Isso deve ser usado ao conectar relatórios do Power BI do kit de ferramentas FinOps aos seus dados. | |
| storageUrlForPowerBI | Cordão | URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados. | |
| clusterId | Cordão | ID do recurso do cluster do Data Explorer. | |
| clusterUri | Cordão | URI do cluster de Data Explorer. | |
| ingestionDbName | Cordão | Nome do banco de dados do Data Explorer usado para ingerir dados. | |
| hubDbName | Cordão | Nome do banco de dados do Data Explorer usado para consultar dados. | |
| managedIdentityId | Cordão | ID do objeto da identidade gerenciada do Data Factory. Isso será necessário ao configurar exportações gerenciadas. | |
| managedIdentityTenantId | Cordão | ID do inquilino do Azure AD. Isso será necessário ao configurar exportações gerenciadas. |
Enviar comentários
Dê-nos a sua opinião com uma breve avaliação. Usamos essas análises para melhorar e expandir as ferramentas e os recursos do FinOps.
Se você está procurando algo específico, vote em uma ideia existente ou crie uma nova. Partilhe ideias com outras pessoas para obter mais votos. Focamo-nos nas ideias mais votadas.