Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 as personalizações que você pode fazer ao 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 escalonável. Os principais recursos com os quais você interagirá incluem:
- Data Explorer (Kusto) como um armazenamento de dados escaloná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 de Gerenciamento de Custos para publicar dados no msexports contêiner na conta de armazenamento incluída. Para obter mais informações, consulte Criar um novo hub.
Pré-requisitos
Verifique se os seguintes pré-requisitos foram 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 da fábrica de dados Implantar o Key Vault (somente hub remoto)¹ Colaborador do Key Vault Configurar segredos do Key Vault (somente hub remoto)¹ Administrador do Key Vault Criar identidade gerenciada¹ Colaborador de Identidade Gerenciada Implantar e configurar o armazenamento¹ Colaborador da Conta de Armazenamento Atribuir identidade gerenciada aos recursos¹ Operador de Identidade Gerenciada Criar scripts de implantação¹ Função personalizada contendo apenas as Microsoft.Resources/deploymentScripts/writepermissões eMicrosoft.ContainerInstance/containerGroups/writecomo ações permitidas ou, alternativamente, Colaborador, que inclui essas permissões e todas as funções acimaAtribuir 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 assinatura ou exportação de custo do grupo de recursos Colaborador do Gerenciamento de Custos Criar uma exportação de custo de cobrança do EA Leitor corporativo, leitor de departamento ou proprietário da conta de registro (saiba mais) Criar uma exportação de custo de cobrança de MCA² Colaborador Ler dados de blob em armazenamento³ Colaborador de Dados do Blob de Armazenamento ¹ É suficiente atribuir permissões de implantação de recursos de hubs no escopo do grupo de recursos.
² As permissões do 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 do Azure RBAC Anotações Colaborador da fábrica de dados 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 no armazenamento. Colaborador da Conta de Armazenamento Atribuído ao Data Factory para gerenciar dados no armazenamento. Colaborador de Dados do Blob de Armazenamento Atribuído ao Data Factory e ao Data Explorer para gerenciar dados no armazenamento. Colaborador privilegiado de dados de arquivo de armazenamento Atribuído à identidade de upload do arquivo de implantação que carrega arquivos no contêiner de configuração. Administrador de Acesso do Usuário Atribuído ao Data Factory para gerenciar dados no armazenamento. O provedor de recursos Microsoft.EventGrid deve ser registrado em sua assinatura. Para obter mais informações, consulte Registrar um provedor de recursos.
Importante
Se você esquecer essa etapa, a implantação será bem-sucedida, mas o gatilho do pipeline não será iniciado e os dados não estarã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 padrão |
|---|---|---|---|
| hubName | Cadeia de caracteres | Opcional. Nome do hub. Usado para assegurar que os nomes de recursos sejam únicos. | finops-hub |
| localização | Cadeia de caracteres | Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. | O mesmo que a implantação |
| storageSku | Cadeia de caracteres | Opcional. SKU de armazenamento a ser usado. LRS = Menor custo, ZRS = Alta disponibilidade. Observe que os SKUs Padrão não estão disponíveis para o armazenamento do Data Lake Gen2. Permitido: Premium_LRS, Premium_ZRS. |
"Premium_LRS" |
| dataExplorerName | Cadeia de caracteres | Opcional. Nome do cluster do Azure Data Explorer a ser usado para análise avançada. Se estiver vazio, o Azure Data Explorer não será implantado. Necessário para usar com o Power BI se você tiver mais de US$ 2 a 5 milhões/m em custos sendo monitorados. Padrão: "" (não use). | |
| dataExplorerSkuName | Cadeia de caracteres | Opcional. Nome do SKU do Azure Data Explorer. Padrão: "Dev(No SLA)_Standard_E2a_v4". | |
| dataExplorerSkuTier | Cadeia de caracteres | Opcional. Camada de SKU para o cluster do Azure Data Explorer. Use o Basic para o menor custo sem SLA (devido a um único nó). Use o Standard para alta disponibilidade e melhor desempenho. Valores permitidos: Básico, Standard. Padrão: "Básico". | |
| dataExplorerSkuCapacity | Int | Opcional. Número de nós a serem usados no cluster. Valores permitidos: 1 para a camada de SKU Básica e 2-1000 para Standard. Padrão: 1. | |
| marcas | Objeto | Opcional. Tags a serem aplicadas a todos os recursos. Também adicionaremos a marca cm-resource-parent para roll-ups de custos aprimorados no Gerenciamento de Custos. |
|
| tagsByResource | Objeto | Opcional. Tags a serem aplicadas aos recursos com base em seu tipo de recurso. Etiquetas específicas do tipo de recurso serão mescladas com etiquetas para todos os recursos. | |
| scopesToMonitor | Matriz | Opcional. Lista de IDs de escopo para a qual monitorar e ingerir o custo. | |
| exportRetentionInDays | Int | Opcional. Número de dias de dados a serem mantidos no contêiner msexports. | 0 |
| retençãoDeIngestãoEmMeses | Int | Opcional. Número de meses de dados a serem mantidos no contêiner de ingestão. | 13 |
| retençãoDeLogsDataExplorerEmDias | Int | Opcional. Número de dias de dados a serem mantidos nas tabelas de *_log do Data Explorer. | 0 |
| dataExplorerRetençãoFinalEmMeses | Int | Opcional. Número de meses de dados a serem mantidos nas tabelas *_final_v* do Data Explorer. | 13 |
| remoteHubStorageUri | Cadeia de caracteres | Opcional. Conta de armazenamento destinada a transmitir dados para ingestão em um hub remoto. | |
| remoteHubStorageKey | Cadeia de caracteres | Opcional. Chave da conta de armazenamento a ser usada ao enviar dados por push para um hub remoto. | |
| enablePublicAccess | cadeia de caracteres | Opcional. Desabilite o acesso público ao data lake (firewall de armazenamento). | Verdade |
| virtualNetworkAddressPrefix | Cadeia de caracteres | Opcional. Faixa de endereços IP para a rede virtual privada utilizada pelos hubs FinOps.
/26 é recomendável para evitar a perda de IPs. Internamente, as seguintes sub-redes serão criadas: /28 para pontos de extremidade privados, outra /28 sub-rede para scripts de implantação temporária (instâncias de contêiner) e /27 para o Azure Data Explorer, se habilitada. |
'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 do Gerenciamento de Custos. -
ingestion– Armazena os dados ingeridos. -
config– Armazena os metadados do hub e as configurações. Arquivos-
settings.json– Configurações do hub. -
schemas/focuscost_1.0.json– Definição de esquema FOCUS 1.0 para conversão de parquet. -
schemas/focuscost_1.0-preview(v1).json– Definição de esquema FOCUS 1.0-preview para conversão parquet. -
schemas/pricesheet_2023-05-01_ea.json– Definição de esquema EA da planilha de preços versão 2023-05-01 para conversão parquet. -
schemas/pricesheet_2023-05-01_mca.json– Definição de esquema MCA da planilha de preços versão 2023-05-01 para conversão parquet. -
schemas/reservationdetails_2023-03-01.json– Definição de esquema de detalhes de reserva versão 2023-03-01 para conversão parquet. -
schemas/reservationrecommendations_2023-05-01_ea.json– Recomendações de reserva EA definição de esquema versão 2023-05-01 para conversão parquet. -
schemas/reservationrecommendations_2023-05-01_mca.json– Recomendações de reserva MCA definição de esquema versão 2023-05-01 para conversão parquet. -
schemas/reservationtransactions_2023-05-01_ea.json– Transações de reserva EA definição de esquema versão 2023-05-01 para conversão parquet. -
schemas/reservationtransactions_2023-05-01_mca.json– Transações de reserva MCA definição de esquema 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 implantação. -
<hubName>-engine-<unique-suffix>Instância do Data Factory- Linhas de Processamento
-
config_InitializeHub– Inicializa (ou atualiza) a instância do hub FinOps após a implantação. -
config_ConfigureExports– Cria exportações de Gerenciamento de Custos para todos os escopos. -
config_StartBackfillProcess– Executa o trabalho de provisionamento 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 Gerenciamento de Custos configuradas para esse hub com base nos escopos definidos no settings.json e executa cada exportação usando o pipeline config_RunExportJobs. -
config_RunExportJobs– Executa as exportações especificadas do Gerenciamento de custos. -
msexports_ExecuteETL– Enfileira o pipelinemsexports_ETL_ingestionpara levar em conta os limites de gatilho de pipeline do Data Factory. -
msexports_ETL_ingestion– converte as exportações de Gerenciamento de Custos em parquet e remove dados históricos duplicados na exportação de cada dia. -
ingestion_ExecuteETL– Enfileira o pipelineingestion_ETL_dataExplorerpara levar em conta os limites de gatilho de pipeline do Data Factory. -
ingestion_ETL_dataExplorer– Ingere dados parquet em um cluster do Azure Data Explorer.
-
- Gatilhos:
-
config_SettingsUpdated– Aciona oconfig_ConfigureExportspipeline quando settings.json é atualizado. -
config_DailySchedule– Dispara o pipelineconfig_RunExportJobsdiariamente para os dados de custo do mês atual. -
config_MonthlySchedule– Dispara o pipelineconfig_RunExportJobsmensalmente para os dados de custo do mês anterior. -
msexports_ManifestAdded– Dispara o pipelinemsexports_ExecuteETLquando as exportações de Gerenciamento de Custos são concluídas. -
ingestion_ManifestAdded– Aciona o pipelineingestion_ExecuteETLquando arquivos manifest.json são adicionados (tratados pelo pipelinemsexports_ETL_ingestion).
-
- Pontos de extremidade privados gerenciados
-
<hubName>store<unique-suffix>– Endpoint privado gerenciado para conta de armazenamento. -
<hubName>-vault-<unique-suffix>– Ponto de extremidade privado gerenciado para o Azure Key Vault.
-
- Linhas de Processamento
-
<hubName>-vault-<unique-suffix>Instância do Key Vault (incluída somente quando implantada como um hub remoto)- Segredos:
- Identidade gerenciada pelo sistema Data Factory
- Segredos:
-
<dataExplorerName>Cluster do Data Explorer-
Hubbanco de dados – funções voltadas para o público para abstrair os internos.- Inclui dois conjuntos de funções:
- Funções específicas do conjunto de dados para a última versão do FOCUS com suporte (por exemplo,
Costs,Prices). - Funções específicas do conjunto de dados para cada versão focus com suporte (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 última versão do FOCUS com suporte (por exemplo,
- Os conjuntos de dados incluem:
Costs,Prices. - As versões FOCUS com suporte incluem:
v1_0.
- Inclui dois 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). -
HubSettingsfunção – Obtém a versão mais recente das configurações da instância do hub. -
HubScopesfunção – Obtém os escopos atualmente configurados para essa instância do hub.
-
- Abrir dados:
-
PricingUnitstabela – Arquivo 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 kit de ferramentas FinOps. Usado para normalização e limpeza de dados. -
resource_typefunção – função simples para mapear IDs de tipo de recurso interno para exibir nomes com base no arquivo de mapeamento ResourceTypes.- Use essa função para mapear um único valor e unir-se à
ResourceTypestabela para atualizar muitas linhas ou mapear outros valores.
- Use essa função para mapear um único valor e unir-se à
-
- Conjuntos de dados:
-
<dataset>_rawtabela – dados brutos diretamente da fonte de ingestão. Usa um esquema de união para dados de várias fontes. -
<dataset>_transform_vX_Yfunção – Normaliza e limpa dados brutos para se alinhar à versão FOCUS direcionada usando tabelas de dados abertas, conforme necessário. -
<dataset>_final_vX_Ytabela – versão limpa da tabela bruta correspondente alinhada à versão FOCUS de destino. Populado por meio de uma política de atualização que usa a função de transformação correspondente quando os dados são ingeridos em tabelas brutas.
-
- 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(Colaborador de Dados do Blob de Armazenamento) – 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 do gerenciador de gatilhos. -
<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 | Cadeia de caracteres | Nome do grupo de recursos. | |
| localização | Cadeia de caracteres | Os recursos de localização do recurso do Azure foram implantados. | |
| dataFactoryName | Cadeia de caracteres | Nome do Data Factory. | |
| storageAccountId | Cadeia de caracteres | ID do recurso da conta de armazenamento implantada. | |
| storageAccountName | Cadeia de caracteres | 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 do FinOps aos seus dados. | |
| URL de armazenamento para PowerBI | Cadeia de caracteres | URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados. | |
| clusterId | Cadeia de caracteres | ID do recurso do cluster do Data Explorer. | |
| clusterUri | Cadeia de caracteres | URI do cluster do Data Explorer. | |
| ingestionDbName | Cadeia de caracteres | Nome do banco de dados do Data Explorer usado para ingerir dados. | |
| hubDbName | Cadeia de caracteres | Nome do banco de dados do Data Explorer usado para consultar dados. | |
| managedIdentityId | Cadeia de caracteres | ID do objeto da identidade gerenciada do Data Factory. Isso será necessário ao configurar exportações gerenciadas. | |
| managedIdentityTenantId | Cadeia de caracteres | ID do locatário do Azure AD. Isso será necessário ao configurar exportações gerenciadas. |
Fornecer comentários
Deixe-nos saber como estamos indo com uma avaliação rápida. Usamos essas revisões para melhorar e expandir ferramentas e recursos do FinOps.
Se você estiver procurando algo específico, vote em um existente ou crie uma ideia. Compartilhe ideias com outras pessoas para obter mais votos. Nos concentramos em ideias com a maioria dos votos.