Freigeben über


FinOps-Hubvorlage

Werfen Sie hinter den Kulissen einen Blick darauf, was die FinOps-Hubvorlage umfasst, einschließlich Eingaben und Ausgaben.

Diese Vorlage erstellt eine neue FinOps-Hubinstanz .

Zu den FinOps-Hubs gehören:

  • Datenspeicher zum Hosten von Kostendaten.
  • Data Factory für die Datenverarbeitung und -orchestrierung.
  • Key Vault zum Speichern geheimer Schlüssel.

Wichtig

Um die Vorlage zu verwenden, müssen Sie einen Kostenverwaltungsexport erstellen, der msexports Kostendaten im Container im enthaltenen Speicherkonto veröffentlicht. Weitere Informationen finden Sie unter Erstellen eines neuen Hubs.


Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie die Vorlage bereitstellen:

  • Sie müssen über die folgenden Berechtigungen verfügen, um die bereitgestellten Ressourcen zu erstellen.

    Resource Minimale Azure RBAC
    Bereitstellen und Konfigurieren von Data Factory¹ Mitwirkender von Data Factory
    Bereitstellen von Key Vault¹ Key Vault-Mitwirkender
    Konfigurieren von Schlüsseltresorschlüsseln¹ Key Vault-Administrator
    Verwaltete Identität erstellen¹ Mitwirkender für verwaltete Identität
    Bereitstellen und Konfigurieren von Speicher¹ Speicherkontomitwirkender
    Zuweisen der verwalteten Identität zu Ressourcen¹ Operator für verwaltete Identität
    Erstellen von Bereitstellungsskripts¹ Benutzerdefinierte Rolle, die nur die Microsoft.Resources/deploymentScripts/write und Microsoft.ContainerInstance/containerGroups/write die Berechtigungen als zulässige Aktionen enthält oder alternativ, Mitwirkender, die diese Berechtigungen und alle oben genannten Rollen enthält
    Zuweisen von Berechtigungen zu verwalteten Identitäten¹ Rollenbasierter Zugriffssteuerungsadministrator oder alternativ der Besitzer, der diese Rolle und alle oben genannten Rollen enthält
    Erstellen eines Abonnement- oder Ressourcengruppenkostenexports² Mitwirkender für Cost Management
    Erstellen eines EA-Abrechnungskostenexports² Enterprise Reader, Department Reader oder Registrierungskontobesitzer (Weitere Informationen)
    Erstellen eines MCA-Abrechnungskostenexports² Mitwirkender
    Lesen von BLOB-Daten im Speicher Mitwirkender an Speicherblobdaten

    ¹ Es reicht aus, hubs Ressourcenbereitstellungsberechtigungen für den Ressourcengruppenbereich zuzuweisen.
    ² Kostenverwaltungsberechtigungen müssen dem Bereich zugewiesen werden, aus dem Sie Ihre Kosten exportieren möchten.
    ¹ Blob-Datenberechtigungen sind erforderlich, um auf exportierte Kostendaten aus Power BI oder anderen Clienttools zuzugreifen.

  • Der Microsoft.EventGrid-Ressourcenanbieter muss in Ihrem Abonnement registriert sein. Weitere Informationen finden Sie unter Registrieren eines Ressourcenanbieters.

    Wichtig

    Wenn Sie diesen Schritt vergessen, wird die Bereitstellung erfolgreich ausgeführt, der Pipelinetrigger wird jedoch nicht gestartet, und Die Daten sind nicht bereit. Weitere Informationen finden Sie unter "Problembehandlung bei Power BI-Berichten".


Parameter

Hier sind die Parameter, mit denen Sie die Bereitstellung anpassen können:

Parameter Typ BESCHREIBUNG Standardwert
hubName Zeichenfolge Optional. Name des Hubs. Wird verwendet, um eindeutige Ressourcennamen sicherzustellen. "finops-hub"
location Zeichenfolge Optional. Azure-Speicherort, an dem alle Ressourcen erstellt werden sollen. Siehe https://aka.ms/azureregions. Identisch mit der Bereitstellung
skipEventGridRegistration bool Gibt an, ob der Event Grid-Ressourcenanbieter bereits registriert wurde (z. B. in einer vorherigen Hubbereitstellung). Die Ereignisraster-RP-Registrierung ist erforderlich. Wenn nicht festgelegt, wird ein temporärer Event Grid-Namespace erstellt, um die Registrierung des Ressourcenanbieters automatisch zu registrieren. false (Register RP)
EventGridLocation Zeichenfolge Optional. Azure-Speicherort, der für einen temporären Event Grid-Namespace zum Registrieren des Microsoft.EventGrid-Ressourcenanbieters verwendet werden soll, wenn der primäre Speicherort nicht unterstützt wird. Der Namespace wird gelöscht und wird nicht für den Hubvorgang verwendet. Identisch mit location
storageSku String Optional. Zu verwendende Speicher-SKU. LRS = Niedrigste Kosten, ZRS = Hohe Verfügbarkeit. Standard-SKUs sind für Data Lake gen2-Speicher nicht verfügbar. Zulässige Werte: Premium_LRS, Premium_ZRS. „Premium_LRS“
Tags Objekt Optional. Tags, die auf alle Ressourcen angewendet werden sollen. Das cm-resource-parent Tag wird auch für verbesserte Kostenrollups in Cost Management hinzugefügt.
tagsByResource Objekt Optional. Tags, die auf Ressourcen basierend auf ihrem Ressourcentyp angewendet werden sollen. Ressourcentypspezifische Tags werden mit Tags für alle Ressourcen zusammengeführt.
scopesToMonitor array Optional. Liste der Bereichs-IDs zum Überwachen und Aufnehmen von Kosten.
exportRetentionInDays int Optional. Die Anzahl der Tage der Kostendaten, die im Container "ms-cm-exports" aufbewahrt werden sollen. 0
ingestionRetentionInMonths int Optional. Die Anzahl der Monate der Kostendaten, die im Aufnahmecontainer aufbewahrt werden sollen. 13
remoteHubStorageUri Zeichenfolge Optional. Speicherkonto zum Übertragen von Daten in einen Remotehub.
remoteHubStorageKey Zeichenfolge Optional. Speicherkontoschlüssel, der beim Übertragen von Daten an einen Remotehub verwendet werden soll.

Ressourcen

Die folgenden Ressourcen werden während der Bereitstellung in der Zielressourcengruppe erstellt.

Ressourcen verwenden die folgende Benennungskonvention: <hubName>-<purpose>-<unique-suffix>. Namen werden angepasst, um Längen- und Zeicheneinschränkungen zu berücksichtigen. Dies <unique-suffix> wird verwendet, um sicherzustellen, dass Ressourcennamen bei Bedarf global eindeutig sind.

  • <hubName>store<unique-suffix> Speicherkonto (Data Lake Storage Gen2)
    • BLOB-Container:
      • msexports – Speichert vorübergehend Kostenmanagementexporte.
      • ingestion – Speichert erfasste Daten.

        Hinweis

        In Zukunft werden wir diesen Container verwenden, um externe Daten außerhalb des Kostenmanagements zu stufen. - config – Speichert Hubmetadaten und Konfigurationseinstellungen. Dateien:

        • settings.json – Hubeinstellungen.
        • schemas/focuscost_1.0.json – FOCUS 1.0 Schemadefinition für die Umwandlung von Parkett.
        • schemas/focuscost_1.0-preview(v1).json – FOCUS 1.0-Preview-Schemadefinition für die Umwandlung von Parkett.
  • <hubName>-engine-<unique-suffix> Data Factory-Instanz
    • Pipelines:
      • msexports_ExecuteETL – Führt die Pipeline in die msexports_ETL_ingestion Warteschlange ein, um Grenzwerte für Data Factory-Pipelineauslöser zu berücksichtigen.
      • msexports_ETL_transform – Wandelt Die Kostenmanagement-Exporte in Parkett um und entfernt historische Daten, die im Export jedes Tages dupliziert wurden.
      • config_ConfigureExports – Erstellt Kostenmanagementexporte für alle Bereiche.
      • config_StartBackfillProcess – Führt den Backfill-Auftrag für jeden Monat basierend auf den Aufbewahrungseinstellungen aus.
      • config_RunBackfillJob – Erstellt und löst Exporte für alle definierten Bereiche für den angegebenen Datumsbereich aus.
      • config_StartExportProcess – Ruft eine Liste aller Kostenverwaltungsexporte ab, die für diesen Hub basierend auf den in settings.json definierten Bereichen konfiguriert sind, und führt dann jeden Export mithilfe der config_RunExportJobs Pipeline aus.
      • config_RunExportJobs – Führt die angegebenen Kostenverwaltungsexporte aus.
      • msexports_ExecuteETL – Löst den Aufnahmeprozess für Kostenverwaltungsexporte aus, um Grenzwerte für Data Factory-Pipelineauslöser zu berücksichtigen.
      • msexports_ETL_transform – Wandelt Die Kostenmanagement-Exporte in Parkett um und entfernt historische Daten, die im Export jedes Tages dupliziert wurden.
    • Auslöser:
      • config_SettingsUpdated – Löst die config_ConfigureExports Pipeline aus, wenn settings.json aktualisiert wird.
      • config_DailySchedule – Löst die Pipeline täglich für die config_RunExportJobs Kostendaten des aktuellen Monats aus.
      • config_MonthlySchedule – Löst die Pipeline monatlich für die config_RunExportJobs Kostendaten des vorherigen Monats aus.
      • msexports_FileAdded – Löst die Pipeline aus, wenn die msexports_ExecuteETL Kostenverwaltungsexporte abgeschlossen sind.
  • <hubName>-vault-<unique-suffix> Key Vault-Instanz
    • Geheimnisse:
      • Verwaltete Identität des Data Factory-Systems

Zusätzlich zu den vorherigen Informationen werden die folgenden Ressourcen erstellt, um den Bereitstellungsprozess zu automatisieren. Die Bereitstellungsskripts sollten automatisch gelöscht werden. Löschen Sie die verwalteten Identitäten jedoch nicht, da dies beim Upgrade auf die nächste Version zu Fehlern führen kann.

  • Verwaltete Identitäten:
    • <storage>_blobManager(Storage Blob Data Contributor) – Lädt die settings.json Datei hoch.
    • <datafactory>_triggerManager (Data Factory-Mitwirkender) – Stoppt Trigger vor der Bereitstellung und startet sie nach der Bereitstellung.
  • Bereitstellungsskripts (automatisch nach einer erfolgreichen Bereitstellung gelöscht):
    • <datafactory>_deleteOldResources – Löscht nicht verwendete Ressourcen aus früheren FinOps-Hubs-Bereitstellungen.
    • <datafactory>_stopTriggers – Stoppt alle Trigger im Hub mithilfe der triggerManager-Identität.
    • <datafactory>_startTriggers – Startet alle Trigger im Hub mithilfe der triggerManager-Identität.
    • <storage>_uploadSettings – Lädt die settings.json Datei mithilfe der blobManager-Identität hoch.

Ausgaben

Hier sind die Ausgaben, die von der Bereitstellung generiert werden:

Output Typ BESCHREIBUNG Wert
name String Name der bereitgestellten Hubinstanz.
location String Azure-Ressourcen für den Ressourcenspeicherort wurden bereitgestellt. location
dataFactorytName String Name der Data Factory. dataFactory.name
storageAccountId String Ressourcen-ID des Speicherkontos, das für die Hubinstanz erstellt wurde. Sie muss beim Erstellen des Kostenmanagementexports verwendet werden. storage.outputs.resourceId
storageAccountName String Name des speicherkontos, das für die Hubinstanz erstellt wurde. Sie muss beim Verbinden von FinOps-Toolkit-Power BI-Berichten mit Ihren Daten verwendet werden. storage.outputs.name
storageUrlForPowerBI String Url, die beim Verbinden von benutzerdefinierten Power BI-Berichten mit Ihren Daten verwendet werden soll. 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}'
managedIdentityId String Objekt-ID der verwalteten Identität der Data Factory. Diese Ausgabe wird beim Konfigurieren von verwalteten Exporten benötigt. dataFactory.identity.principalId
managedIdentityTenantId String Microsoft Entra-Mandanten-ID Diese Ausgabe wird beim Konfigurieren von verwalteten Exporten benötigt. tenant().tenantId