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 enMicrosoft.ContainerInstance/containerGroups/write
machtigingen bevat, of, als alternatief, Inzender, die deze machtigingen en alle bovenstaande rollen bevatMachtigingen 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.
-
-
- Blobcontainers:
-
<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 demsexports_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 deingestion_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 deconfig_ConfigureExports
pijplijn wanneer settings.json wordt bijgewerkt. -
config_DailySchedule
: activeert deconfig_RunExportJobs
pijplijn dagelijks voor de kostengegevens van de huidige maand. -
config_MonthlySchedule
: activeert deconfig_RunExportJobs
pijplijn maandelijks voor de kostengegevens van de vorige maand. -
msexports_ManifestAdded
– Activeert demsexports_ExecuteETL
pijplijn wanneer Cost Management-exports zijn voltooid. -
ingestion_ManifestAdded
: activeert deingestion_ExecuteETL
pijplijn wanneer manifest.json bestanden worden toegevoegd (verwerkt door demsexports_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.
-
- Pijpleidingen:
-
<hubName>-vault-<unique-suffix>
Key Vault-exemplaar- Geheimen:
- Door het Data Factory-systeem beheerde identiteit
- Geheimen:
-
<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.
- Gegevenssetspecifieke functies voor de meest recente ondersteunde FOCUS-versie (bijvoorbeeld
- Gegevenssets omvatten:
Costs
,Prices
. - Ondersteunde FOCUS-versies zijn onder andere:
v1_0
.
- Bevat 2 sets functies:
-
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.
-
- Instellingen:
-
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. |