Compartilhar via


Modelo de hub FinOps

Nos bastidores, dê uma olhada no que compõe o modelo de hub FinOps, incluindo entradas e saídas.

Este modelo cria uma nova instância do hub FinOps.

Os hubs FinOps incluem:

  • Data Lake Storage para hospedar dados de custo.
  • Data Factory para processamento e orquestração de dados.
  • Key Vault para armazenar segredos.

Importante

Para usar o modelo, você precisa criar uma exportação do Gerenciamento de Custos que publique dados de custo 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:


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 string Opcional. Nome do hub. Usado para garantir nomes de recursos exclusivos. "finops-hub"
local string Opcional. Local do Azure onde todos os recursos devem ser criados. Consulte https://aka.ms/azureregions. O mesmo que implantação
skipEventGridRegistration bool Indica se o provedor de recursos da Grade de Eventos já foi registrado (por exemplo, em uma implantação de hub anterior). O registro de RP da Grade de Eventos é necessário. Se não for definido, um namespace temporário da Grade de Eventos será criado para registrar automaticamente o provedor de recursos. false (registrar RP)
EventGridLocation string Opcional. Local do Azure a ser usado para um namespace temporário da Grade de Eventos para registrar o provedor de recursos Microsoft.EventGrid se não houver suporte para o local primário. O namespace é excluído e não é usado para operação do hub. Mesmo que location
armazenamentoSku String Opcional. SKU de armazenamento a ser usado. LRS = Menor custo, ZRS = Alta disponibilidade. Os SKUs Standard não estão disponíveis para o armazenamento do Data Lake gen2. Permitido: Premium_LRS, Premium_ZRS. "Premium_LRS"
marcas objeto Opcional. Tags a serem aplicadas a todos os recursos. A cm-resource-parent tag também é adicionada para acúmulos de custos aprimorados no Gerenciamento de Custos.
tagsByResource objeto Opcional. Tags a serem aplicadas aos recursos com base em seu tipo de recurso. As tags específicas do tipo de recurso são mescladas com tags para todos os recursos.
scopesToMonitor matriz Opcional. Lista de IDs de escopo para monitorar e ingerir custos.
exportRetentionInDays int Opcional. Número de dias de dados de custo a serem retidos no contêiner ms-cm-exports. 0
ingestionRetentionInMonths int Opcional. Número de meses de dados de custo a serem retidos no contêiner de ingestão. 13
remoteHubStorageUri string Opcional. Conta de armazenamento para a qual enviar dados por push para ingestão em um hub remoto.
remoteHubStorageKey string Opcional. Chave da conta de armazenamento a ser usada ao enviar dados por push para um hub remoto.

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.

        Observação

        No futuro, usaremos esse contêiner para preparar dados externos fora do Gerenciamento de Custos. - config – Armazena metadados do hub e definições de configuração. 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 de visualização do FOCUS 1.0 para conversão de parquet.
  • <hubName>-engine-<unique-suffix> Instância do Data Factory
    • Pipelines:
      • msexports_ExecuteETL – Enfileira o pipeline para levar em conta os limites de gatilho do msexports_ETL_ingestion pipeline do Data Factory.
      • msexports_ETL_transform – Converte as exportações do Gerenciamento de Custos em parquet e remove dados históricos duplicados na exportação de cada dia.
      • config_ConfigureExports – Cria exportações de Gerenciamento de Custos para todos os escopos.
      • config_StartBackfillProcess – Executa o trabalho de aterramento 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 – Dispara o processo de ingestão para exportações do Gerenciamento de Custos para considerar os limites de gatilho de pipeline do Data Factory.
      • msexports_ETL_transform – Converte as exportações do Gerenciamento de Custos em parquet e remove dados históricos duplicados na exportação de cada dia.
    • Gatilhos:
      • config_SettingsUpdated – Aciona o config_ConfigureExports pipeline quando settings.json é atualizado.
      • config_DailySchedule – Aciona o config_RunExportJobs pipeline diariamente para os dados de custo do mês atual.
      • config_MonthlySchedule – Aciona o config_RunExportJobs pipeline mensalmente para os dados de custo do mês anterior.
      • msexports_FileAdded – Aciona o pipeline quando as msexports_ExecuteETL exportações do Gerenciamento de custos são concluídas.
  • <hubName>-vault-<unique-suffix> Instância do Key Vault
    • Segredos:
      • Identidade gerenciada pelo sistema Data Factory

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 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
name String Nome da instância do hub implantada.
local String Os recursos de localização de recursos do Azure foram implantados. location
dataFactorytName String Nome do Data Factory. dataFactory.name
storageAccountId String ID do recurso da conta de armazenamento criada para a instância do hub. Ele deve ser usado ao criar a exportação do Gerenciamento de custos. storage.outputs.resourceId
storageAccountName String Nome da conta de armazenamento criada para a instância do hub. Ele deve ser usado ao conectar relatórios do Power BI do kit de ferramentas FinOps aos seus dados. storage.outputs.name
storageUrlForPowerBI String URL a ser usada ao conectar relatórios personalizados do Power BI aos seus dados. 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}'
managedIdentityId String ID do objeto da identidade gerenciada do Data Factory. Essa saída é necessária ao configurar exportações gerenciadas. dataFactory.identity.principalId
managedIdentityTenantId String ID de locatário do Microsoft Entra. Essa saída é necessária ao configurar exportações gerenciadas. tenant().tenantId