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
undMicrosoft.ContainerInstance/containerGroups/write
die Berechtigungen als zulässige Aktionen enthält oder alternativ, Mitwirkender, die diese Berechtigungen und alle oben genannten Rollen enthältZuweisen 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.
- BLOB-Container:
<hubName>-engine-<unique-suffix>
Data Factory-Instanz- Pipelines:
msexports_ExecuteETL
– Führt die Pipeline in diemsexports_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 dieconfig_ConfigureExports
Pipeline aus, wenn settings.json aktualisiert wird.config_DailySchedule
– Löst die Pipeline täglich für dieconfig_RunExportJobs
Kostendaten des aktuellen Monats aus.config_MonthlySchedule
– Löst die Pipeline monatlich für dieconfig_RunExportJobs
Kostendaten des vorherigen Monats aus.msexports_FileAdded
– Löst die Pipeline aus, wenn diemsexports_ExecuteETL
Kostenverwaltungsexporte abgeschlossen sind.
- Pipelines:
<hubName>-vault-<unique-suffix>
Key Vault-Instanz- Geheimnisse:
- Verwaltete Identität des Data Factory-Systems
- Geheimnisse:
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 |