Delen via


FinOps-hubsjabloon

Dit document bevat een gedetailleerd overzicht van wat er is opgenomen in de FinOps Hubs-implementatiesjabloon. U kunt dit gebruiken als richtlijn voor het afstemmen van uw implementatie of om aanpassingen te informeren die u aan de sjabloon kunt aanbrengen om te voldoen aan de behoeften van uw organisatie. In dit document worden de vereiste vereisten uitgelegd voor het implementeren van de sjabloon, invoerparameters die u kunt aanpassen, resources die worden geïmplementeerd en de sjabloonuitvoer. Sjabloonuitvoer kan worden gebruikt om verbinding te maken met uw hub-exemplaren in Power BI, Data Explorer of andere hulpprogramma's.

FinOps-hubs bevatten veel resources om een veilig en schaalbaar FinOps-platform te bieden. De belangrijkste resources waarmee u werkt, zijn onder andere:

  • Data Explorer (Kusto) als een schaalbaar gegevensarchief voor geavanceerde analyses (optioneel).
  • Opslagaccount (Data Lake Storage Gen2) als faseringsgebied voor gegevensopname.
  • Data Factory-exemplaar voor het beheren van gegevensopname en opschoning.

Belangrijk

Als u de sjabloon wilt gebruiken, moet u Cost Management-exports maken om gegevens te publiceren naar de msexports container in het opgenomen opslagaccount. Zie Een nieuwe hub maken voor meer informatie.


Vereisten

Zorg ervoor dat aan de volgende vereisten wordt voldaan voordat u de sjabloon implementeert:

  • U moet over de volgende machtigingen beschikken om de geïmplementeerde resources te maken.

    Bron Minimale Azure RBAC
    Data Factory¹ implementeren en configureren Data Factory-inzender
    Key Vault implementeren¹ Key Vault-inzender
    Key Vault-geheimen configureren¹ Key Vault-beheerder
    Beheerde identiteit maken¹ Inzender voor beheerde identiteit
    Opslag implementeren en configureren¹ Inzender voor opslagaccounts
    Beheerde identiteit toewijzen aan resources¹ Operator voor beheerde identiteit
    Implementatiescripts maken¹ Aangepaste rol die alleen de Microsoft.Resources/deploymentScripts/write toegestane acties en Microsoft.ContainerInstance/containerGroups/write machtigingen bevat, of, als alternatief, Inzender, die deze machtigingen en alle bovenstaande rollen bevat
    Machtigingen toewijzen aan beheerde identiteiten¹ Op rollen gebaseerd toegangsbeheerbeheerder of, als alternatief eigenaar, die deze rol en alle bovenstaande rollen bevat
    Een abonnement of resourcegroep kostenexport maken² Cost Management-inzender
    Een EA-factureringskostenexport maken² Ondernemingslezer, afdelingslezer of eigenaar van inschrijvingsaccount (meer informatie)
    Een kostenexport voor MCA-facturering maken² Inzender
    Blobgegevens lezen in storage³ Inzender van opslag-blobgegevens

    ¹ Het is voldoende om implementatiemachtigingen voor hubs-resources toe te wijzen voor het bereik van de resourcegroep.
    ² Cost Management-machtigingen moeten worden toegewezen aan het bereik waaruit u uw kosten wilt exporteren.
    ³ Blob-gegevensmachtigingen zijn vereist voor toegang tot geëxporteerde kostengegevens uit Power BI of andere clienthulpprogramma's.

  • De Microsoft.EventGrid-resourceprovider moet zijn geregistreerd in uw abonnement. Zie Een resourceprovider registreren voor meer informatie.

    Belangrijk

    Als u deze stap vergeet, slaagt de implementatie, maar wordt de pijplijntrigger niet gestart en zijn gegevens niet gereed. Zie Problemen met Power BI-rapporten oplossen voor meer informatie.


Parameters

Dit zijn de parameters die u kunt gebruiken om de implementatie aan te passen:

Parameter Type Description Default value
hubName String Optioneel. Naam van de hub. Wordt gebruikt om unieke resourcenamen te garanderen. "finops-hub"
location String Optioneel. Azure-locatie waar alle resources moeten worden gemaakt. Zie https://aka.ms/azureregions. Hetzelfde als de implementatie
storageSku String Optioneel. Opslag-SKU die moet worden gebruikt. LRS = Laagste kosten, ZRS = Hoge beschikbaarheid. Standaard-SKU's zijn niet beschikbaar voor Data Lake Gen2-opslag. Toegestaan: Premium_LRS, Premium_ZRS. "Premium_LRS"
dataExplorerName String Optioneel. De naam van het Azure Data Explorer-cluster dat moet worden gebruikt voor geavanceerde analyses. Als dit leeg is, wordt Azure Data Explorer niet geïmplementeerd. Vereist voor gebruik met Power BI als u tussen de $2 en $5 miljoen per maand aan kosten heeft die worden gemonitord. Standaard: '' (niet gebruiken).
dataExplorerSkuName String Optioneel. Naam van de Azure Data Explorer-SKU. Standaard: 'Dev(No SLA)_Standard_E2a_v4'.
dataExplorerSkuTier String Optioneel. SKU-laag voor het Azure Data Explorer-cluster. Gebruik Basic voor de laagste kosten zonder SLA (vanwege één knooppunt). Gebruik Standard voor hoge beschikbaarheid en verbeterde prestaties. Toegestane waarden: Basic, Standard. Standaard: 'Basic'.
dataExplorerSkuCapacity Int Optioneel. Het aantal knooppunten dat in het cluster moet worden gebruikt. Toegestane waarden: 1 voor de Basic-SKU-laag en 2-1000 voor Standard. Standaard: 1.
tags Object Optioneel. Tags die moeten worden toegepast op alle resources. We voegen ook de cm-resource-parent-tag toe voor verbeterde kostenconsolidaties in Kostenbeheer.
tagsByResource Object Optioneel. Tags die moeten worden toegepast op resources op basis van hun resourcetype. Specifieke tags voor het resourcetype worden samengevoegd met tags voor alle resources.
scopesToMonitor Array Optioneel. Lijst met bereik-id's voor het bewaken en opnemen van kosten.
exportRetentionInDays Int Optioneel. Aantal dagen aan gegevens dat moet worden bewaard in de msexports-container. 0
ingestionRetentionInMonths Int Optioneel. Aantal maanden aan gegevens dat moet worden bewaard in de opnamecontainer. 13
dataExplorerLogRetentionInDays Int Optioneel. Aantal dagen aan gegevens dat moet worden bewaard in de Data Explorer *_log tabellen. 0
dataExplorerFinalRetentionInMonths Int Optioneel. Het aantal maanden aan gegevens dat moet worden bewaard in de Data Explorer -tabellen *_final_v*. 13
remoteHubStorageUri String Optioneel. Opslagaccount om gegevens naar een externe hub te pushen voor opname.
remoteHubStorageKey String Optioneel. De sleutel van het opslagaccount dat moet worden gebruikt bij het pushen van gegevens naar een externe hub.
PublicAccess inschakelen tekenreeks Optioneel. Openbare toegang tot het datalake (opslagfirewall) uitschakelen. Vals
virtualNetworkAddressPrefix String Optioneel. IP-adresbereik voor het particuliere virtuele netwerk dat wordt gebruikt door FinOps-hubs. /26 wordt aanbevolen om het verspillen van IP-adressen te voorkomen. Intern worden de volgende subnetten gemaakt: /28 voor privé-eindpunten, een ander /28 subnet voor tijdelijke implementatiescripts (containerinstanties) en /27 voor Azure Data Explorer, indien ingeschakeld. '10.20.30.0/26'

Resources

De volgende resources worden tijdens de implementatie gemaakt in de doelresourcegroep.

Resources gebruiken de volgende naamconventie: <hubName>-<purpose>-<unique-suffix>. Namen worden aangepast om rekening te houden met lengte- en tekenbeperkingen. De <unique-suffix> naam wordt gebruikt om ervoor te zorgen dat resourcenamen wereldwijd uniek zijn, indien nodig.

  • <hubName>store<unique-suffix> opslagaccount (Data Lake Storage Gen2)
    • Blobcontainers:
      • msexports – Slaat cost management-exports tijdelijk op.
      • ingestion – Slaat opgenomen gegevens op.

        Notitie

        In de toekomst gebruiken we deze container om externe gegevens buiten Cost Management te fasen. - config – Slaat hubmetagegevens en configuratie-instellingen op. Bestanden:

        • settings.json – Hub-instellingen.
        • schemas/focuscost_1.0.json – FOCUS 1.0-schemadefinitie voor parquet-conversie.
        • schemas/focuscost_1.0-preview(v1).json – FOCUS 1.0-preview schemadefinitie voor parquet-conversie.
        • schemas/pricesheet_2023-05-01_ea.json – EA-schemadefinitie voor prijsoverzicht versie 2023-05-01 voor parquet-conversie.
        • schemas/pricesheet_2023-05-01_mca.json – Prijsoverzicht MCA-schemadefinitie versie 2023-05-01 voor parquetconversie.
        • schemas/reservationdeatils_2023-03-01.json – Schemadefinitie voor reserveringsgegevens versie 2023-03-01 voor parquet-conversie.
        • schemas/reservationrecommendations_2023-05-01_ea.json – Aanbevelingen voor de EA-schemadefinitie versie 2023-05-01 bij parquet-conversie.
        • schemas/reservationrecommendations_2023-05-01_mca.json– Aanbevelingen voor MCA-schemadefinitie versie 2023-05-01 voor parquet-conversie.
        • schemas/reservationtransactions_2023-05-01_ea.json– Reserveringstransacties EA-schemadefinitie versie 2023-05-01 voor parquet-conversie.
        • schemas/reservationtransactions_2023-05-01_mca.json: Reserveringstransacties MCA-schemadefinitie versie 2023-05-01 voor parquetconversie.
  • <hubName>script<unique-suffix> opslagaccount (Data Lake Storage Gen2) voor implementatiescripts.
  • <hubName>-engine-<unique-suffix> Data Factory-exemplaar
    • Pijpleidingen:
      • config_InitializeHub: initialiseert (of updates) het FinOps Hub-exemplaar na de implementatie.
      • config_ConfigureExports – Hiermee maakt u Cost Management-exports voor alle bereiken.
      • config_StartBackfillProcess – Voert de backfilltaak voor elke maand uit op basis van bewaarinstellingen.
      • config_RunBackfillJob – Hiermee maakt en activeert u exports voor alle gedefinieerde bereiken voor het opgegeven datumbereik.
      • config_StartExportProcess – Haalt een lijst op van alle Cost Management-exports die zijn geconfigureerd voor deze hub op basis van de bereiken die zijn gedefinieerd in settings.json en voert vervolgens elke export uit met behulp van de config_RunExportJobs-pijplijn.
      • config_RunExportJobs – Voert de opgegeven Cost Management-exports uit.
      • msexports_ExecuteETL – Hiermee wordt de pijplijn in de msexports_ETL_ingestion wachtrij geplaatst om rekening te houden met limieten voor data factory-pijplijntriggers.
      • msexports_ETL_ingestion – Converteert Cost Management-exports naar parquet en verwijdert historische gegevens die in de export van elke dag worden gedupliceerd.
      • ingestion_ExecuteETL – Hiermee wordt de pijplijn in de ingestion_ETL_dataExplorer wachtrij geplaatst om rekening te houden met limieten voor data factory-pijplijntriggers.
      • ingestion_ETL_dataExplorer: hiermee worden parquet-gegevens opgenomen in een Azure Data Explorer-cluster.
    • Triggers:
      • config_SettingsUpdated – Activeert de config_ConfigureExports pijplijn wanneer settings.json wordt bijgewerkt.
      • config_DailySchedule : activeert de config_RunExportJobs pijplijn dagelijks voor de kostengegevens van de huidige maand.
      • config_MonthlySchedule : activeert de config_RunExportJobs pijplijn maandelijks voor de kostengegevens van de vorige maand.
      • msexports_ManifestAdded – Activeert de msexports_ExecuteETL pijplijn wanneer Cost Management-exports zijn voltooid.
      • ingestion_ManifestAdded: activeert de ingestion_ExecuteETL pijplijn wanneer manifest.json bestanden worden toegevoegd (verwerkt door de msexports_ETL_ingestion-pijplijn).
    • Beheerde privé-eindpunten
      • <hubName>store<unique-suffix> : beheerd privé-eindpunt voor opslagaccount.
      • <hubName>-vault-<unique-suffix> : beheerd privé-eindpunt voor Azure Key Vault.
  • <hubName>-vault-<unique-suffix> Key Vault-exemplaar
    • Geheimen:
      • Door het Data Factory-systeem beheerde identiteit
  • <dataExplorerName> Data Explorer-cluster
    • Hub database: openbare functies om interne functies te abstraheren.
      • Bevat 2 sets functies:
        • Gegevenssetspecifieke functies voor de meest recente ondersteunde FOCUS-versie (bijvoorbeeld Costs, Prices).
        • Gegevenssetspecifieke functies voor elke ondersteunde FOCUS-versie (bijvoorbeeld Costs_v1_0 voor FOCUS 1.0). Deze functies worden geleverd voor compatibiliteit met eerdere versies. Alle functies retourneren alle gegevens die zijn afgestemd op de beoogde FOCUS-versie.
      • Gegevenssets omvatten: Costs, Prices.
      • Ondersteunde FOCUS-versies zijn onder andere: v1_0.
    • Ingestion database: slaat opgenomen gegevens op.
      • Instellingen:
        • HubSettingsLog tabel – slaat een geschiedenis op van configuratiewijzigingen op hoog niveau (bijvoorbeeld versies, reikwijdtes).
        • HubSettings functie: haalt de nieuwste versie van de hubinstantie-instellingen op.
        • HubScopes functie: haalt de momenteel geconfigureerde scopes voor dit hub-exemplaar op.
      • Gegevens openen:
        • PricingUnits tabel – PricingUnits-koppelbestand van de FinOps-toolkit. Wordt gebruikt voor het normaliseren en opschonen van gegevens.
        • Regions tabel – regio’s koppelbestand vanuit de FinOps-toolkit. Wordt gebruikt voor het normaliseren en opschonen van gegevens.
        • ResourceTypes tabel – resource-typetoewijzingsbestand uit de FinOps-toolkit. Wordt gebruikt voor het normaliseren en opschonen van gegevens.
        • Services tabel – Services-toewijzingsbestand uit de FinOps-toolkit. Wordt gebruikt voor het normaliseren en opschonen van gegevens.
      • Datasets:
        • <dataset>_raw tabel: onbewerkte gegevens rechtstreeks vanuit de ingestiebron. Maakt gebruik van een samenvoegschema voor gegevens uit meerdere bronnen.
        • <dataset>_transform_vX_Y functie: hiermee worden onbewerkte gegevens genormaliseerd en opgeschoond om de beoogde FOCUS-versie uit te lijnen met behulp van open gegevenstabellen, indien nodig.
        • <dataset>_final_vX_Y tabel: schone versie van de bijbehorende onbewerkte tabel die is afgestemd op de beoogde FOCUS-versie. Gevuld via een updatebeleid dat gebruikmaakt van de bijbehorende transformatiefunctie wanneer gegevens worden opgenomen in onbewerkte tabellen.

Naast de voorgaande informatie worden de volgende resources gemaakt om het implementatieproces te automatiseren. De implementatiescripts moeten automatisch worden verwijderd. Verwijder de beheerde identiteiten echter niet, omdat dit fouten kan veroorzaken bij het upgraden naar de volgende release.

  • Beheerde identiteiten:
    • <storage>_blobManager (Inzender voor opslagblobgegevens): uploadt het settings.json-bestand.
    • <datafactory>_triggerManager (Data Factory-inzender): stopt triggers vóór de implementatie en start deze na de implementatie.
  • Implementatiescripts (automatisch verwijderd na een geslaagde implementatie):
    • <datafactory>_deleteOldResources – Verwijdert ongebruikte resources uit eerdere FinOps-hubs-implementaties.
    • <datafactory>_stopTriggers – Stopt alle triggers in de hub met behulp van de triggerManager-identiteit.
    • <datafactory>_startTriggers – Start alle triggers in de hub met behulp van de triggerManager-identiteit.
    • <storage>_uploadSettings – Uploadt het settings.json bestand met behulp van de blobManager-identiteit.

Uitvoerwaarden

Dit zijn de uitvoer die door de implementatie wordt gegenereerd:

Uitvoer Type Description Waarde
name String Naam van de resourcegroep.
location String Azure-resourcelocatieresources zijn geïmplementeerd in.
dataFactorytName String Naam van de Data Factory.
storageAccountId String Resource-id van het geïmplementeerde opslagaccount.
storageAccountName String Naam van het opslagaccount dat is gemaakt voor het hub-exemplaar. Dit moet worden gebruikt bij het verbinden van Power BI-rapporten van De FinOps-toolkit met uw gegevens.
storageUrlForPowerBI String DE URL die moet worden gebruikt bij het verbinden van aangepaste Power BI-rapporten met uw gegevens.
clusterId String Resource-id van het Data Explorer-cluster.
clusterUri String URI van het Data Explorer-cluster.
ingestionDbName String Naam van de Data Explorer-database die wordt gebruikt voor het opnemen van gegevens.
hubDbName String Naam van de Data Explorer-database die wordt gebruikt voor het opvragen van gegevens.
managedIdentityId String Object-id van de beheerde Identiteit van Data Factory. Dit is nodig bij het configureren van beheerde exports.
managedIdentityTenantId String Azure AD-tenant-id. Dit is nodig bij het configureren van beheerde exports.