FinOps-hubbmall
I bakgrunden tittar du på vad som utgör FinOps Hub-mallen, inklusive indata och utdata.
Den här mallen skapar en ny FinOps-hubbinstans .
FinOps-hubbar omfattar:
- Data Lake Storage som värd för kostnadsdata.
- Data Factory för databearbetning och orkestrering.
- Key Vault för lagring av hemligheter.
Viktigt!
Om du vill använda mallen måste du skapa en Cost Management-export som publicerar kostnadsdata till containern msexports
i det inkluderade lagringskontot. Mer information finns i Skapa en ny hubb.
Förutsättningar
Se till att följande krav uppfylls innan du distribuerar mallen:
Du måste ha följande behörigheter för att skapa de distribuerade resurserna.
Resurs Minsta Azure RBAC Distribuera och konfigurera Data Factory¹ Data Factory-deltagare Distribuera Key Vault¹ Key Vault-deltagare Konfigurera Key Vault-hemligheter¹ Key Vault-administratör Skapa hanterad identitet¹ Hanterad identitetsdeltagare Distribuera och konfigurera lagring¹ Lagringskontodeltagare Tilldela hanterad identitet till resurser¹ Hanterad identitetsoperator Skapa distributionsskript¹ Anpassad roll som endast innehåller behörigheterna Microsoft.Resources/deploymentScripts/write
ochMicrosoft.ContainerInstance/containerGroups/write
som tillåtna åtgärder eller, alternativt deltagare, som innehåller dessa behörigheter och alla ovanstående rollerTilldela behörigheter till hanterade identiteter¹ Administratör för rollbaserad åtkomstkontroll eller, alternativt ägare, som innehåller den här rollen och alla ovanstående roller Skapa en prenumeration eller resursgruppskostnadsexport² Cost Management-deltagare Skapa en EA-faktureringskostnadsexport² Företagsläsare, avdelningsläsare eller ägare av registreringskonto (läs mer) Skapa en mca-faktureringskostnadsexport² Deltagare Läsa blobdata i storage³ Storage Blob datadeltagare ¹ Det räcker att tilldela distributionsbehörigheter för hubbar i resursgruppens omfång.
² Cost Management-behörigheter måste tilldelas i det omfång där du vill exportera dina kostnader från.
³ Blobdatabehörigheter krävs för åtkomst till exporterade kostnadsdata från Power BI eller andra klientverktyg.Resursprovidern Microsoft.EventGrid måste vara registrerad i din prenumeration. Mer information finns i Registrera en resursprovider.
Viktigt!
Om du glömmer det här steget lyckas distributionen, men pipelineutlösaren startas inte och data kommer inte att vara klara. Mer information finns i Felsöka Power BI-rapporter.
Parametrar
Här är de parametrar som du kan använda för att anpassa distributionen:
Parameter | Typ | Beskrivning | Standardvärde |
---|---|---|---|
hubName | sträng | Valfritt. Hubbens namn. Används för att säkerställa unika resursnamn. | "finops-hub" |
Plats | sträng | Valfritt. Azure-plats där alla resurser ska skapas. Se https://aka.ms/azureregions. | Samma som distribution |
skipEventGridRegistration | bool | Anger om Event Grid-resursprovidern redan har registrerats (till exempel i en tidigare hubbdistribution). Event Grid RP-registrering krävs. Om det inte anges skapas ett tillfälligt Event Grid-namnområde för att automatiskt registrera resursprovidern. | false (registrera RP) |
EventGridLocation | sträng | Valfritt. Azure-plats som ska användas för ett tillfälligt Event Grid-namnområde för att registrera resursprovidern Microsoft.EventGrid om den primära platsen inte stöds. Namnområdet tas bort och används inte för hubbåtgärd. | Samma som location |
storageSku | String | Valfritt. Lagrings-SKU som ska användas. LRS = Lägsta kostnad, ZRS = Hög tillgänglighet. Standard-SKU:er är inte tillgängliga för Data Lake gen2-lagring. Tillåten: Premium_LRS , Premium_ZRS . |
"Premium_LRS" |
tagg | objekt | Valfritt. Taggar som ska tillämpas på alla resurser. Taggen cm-resource-parent läggs också till för förbättrade kostnadsuppslagningar i Cost Management. |
|
tagsByResource | objekt | Valfritt. Taggar som ska tillämpas på resurser baserat på deras resurstyp. Specifika taggar för resurstyp sammanfogas med taggar för alla resurser. | |
scopesToMonitor | matris | Valfritt. Lista över omfångs-ID:er att övervaka och mata in kostnader för. | |
exportRetentionInDays | heltal | Valfritt. Antal dagar med kostnadsdata som ska behållas i containern ms-cm-exports. | 0 |
ingestionRetentionInMonths | heltal | Valfritt. Antal månader med kostnadsdata som ska behållas i inmatningscontainern. | 13 |
remoteHubStorageUri | sträng | Valfritt. Lagringskonto för att skicka data till för inmatning till en fjärrhubb. | |
remoteHubStorageKey | sträng | Valfritt. Lagringskontonyckel som ska användas vid överföring av data till en fjärrhubb. |
Resurser
Följande resurser skapas i målresursgruppen under distributionen.
Resurser använder följande namngivningskonvention: <hubName>-<purpose>-<unique-suffix>
. Namn justeras för att ta hänsyn till längd- och teckenbegränsningar. <unique-suffix>
Används för att säkerställa att resursnamnen är globalt unika där det behövs.
<hubName>store<unique-suffix>
lagringskonto (Data Lake Storage Gen2)- Blobcontainrar:
msexports
– Lagrar tillfälligt Cost Management-exporter.ingestion
– Lagrar inmatade data.Kommentar
I framtiden använder vi den här containern för att mellanlagra externa data utanför Cost Management. -
config
– Lagrar hubbmetadata och konfigurationsinställningar. Filer:settings.json
– Hubbinställningar.schemas/focuscost_1.0.json
– FOCUS 1.0-schemadefinition för parquet-konvertering.schemas/focuscost_1.0-preview(v1).json
– FOCUS 1.0-förhandsversionsschemadefinition för parquet-konvertering.
- Blobcontainrar:
<hubName>-engine-<unique-suffix>
Data Factory-instans- Rörledningar:
msexports_ExecuteETL
– Köar pipelinen för att ta hänsyn till datafabrikensmsexports_ETL_ingestion
pipelineutlösargränser.msexports_ETL_transform
– Konverterar Cost Management-exporter till parquet och tar bort historiska data som dupliceras i varje dags export.config_ConfigureExports
– Skapar Cost Management-exporter för alla omfång.config_StartBackfillProcess
– Kör återfyllnadsjobbet för varje månad baserat på kvarhållningsinställningar.config_RunBackfillJob
– Skapar och utlöser exporter för alla definierade omfång för det angivna datumintervallet.config_StartExportProcess
– Hämtar en lista över alla Cost Management-exporter som konfigurerats för den här hubben baserat på de omfång som definierats i settings.json och kör sedan varje export med hjälp av config_RunExportJobs pipeline.config_RunExportJobs
– Kör angivna Cost Management-exporter.msexports_ExecuteETL
– Utlöser inmatningsprocessen för Cost Management-exporter för att ta hänsyn till utlösargränser för Data Factory-pipeline.msexports_ETL_transform
– Konverterar Cost Management-exporter till parquet och tar bort historiska data som dupliceras i varje dags export.
- Utlösare:
config_SettingsUpdated
– Utlöser pipelinenconfig_ConfigureExports
när settings.json uppdateras.config_DailySchedule
– Utlöser pipelinenconfig_RunExportJobs
dagligen för den aktuella månadens kostnadsdata.config_MonthlySchedule
– Utlöser pipelinenconfig_RunExportJobs
varje månad för föregående månads kostnadsdata.msexports_FileAdded
– Utlöser pipelinenmsexports_ExecuteETL
när Cost Management-exporten slutförs.
- Rörledningar:
<hubName>-vault-<unique-suffix>
Key Vault-instans- Hemligheter:
- Data Factory-systemhanterad identitet
- Hemligheter:
Förutom föregående information skapas följande resurser för att automatisera distributionsprocessen. Distributionsskripten ska tas bort automatiskt. Ta dock inte bort de hanterade identiteterna eftersom det kan orsaka fel vid uppgradering till nästa version.
- Hanterade identiteter:
<storage>_blobManager
(Storage Blob Data Contributor) – Laddar upp settings.json-filen.<datafactory>_triggerManager
(Data Factory-deltagare) – Stoppar utlösare före distributionen och startar dem efter distributionen.
- Distributionsskript (tas bort automatiskt efter en lyckad distribution):
<datafactory>_deleteOldResources
– Tar bort oanvända resurser från tidigare FinOps Hubs-distributioner.<datafactory>_stopTriggers
– Stoppar alla utlösare i hubben med hjälp av triggerManager-identiteten.<datafactory>_startTriggers
– Startar alla utlösare i hubben med hjälp av triggerManager-identiteten.<storage>_uploadSettings
– Laddar upp settings.json-filen med blobManager-identiteten.
Utdata
Här är utdata som genereras av distributionen:
Output | Typ | Beskrivning | Värde |
---|---|---|---|
Namn | String | Namnet på den distribuerade hubbinstansen. | |
Plats | String | Azure-resursplatsresurser distribuerades till. | location |
dataFactorytName | String | Namnet på Data Factory. | dataFactory.name |
storageAccountId | String | Resurs-ID för lagringskontot som skapats för hubbinstansen. Den måste användas när du skapar Cost Management-exporten. | storage.outputs.resourceId |
storageAccountName | String | Namnet på lagringskontot som skapats för hubbinstansen. Den måste användas när du ansluter FinOps toolkit Power BI-rapporter till dina data. | storage.outputs.name |
storageUrlForPowerBI | String | URL som ska användas när du ansluter anpassade Power BI-rapporter till dina data. | 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}' |
managedIdentityId | String | Objekt-ID för datafabrikens hanterade identitet. Dessa utdata behövs när du konfigurerar hanterade exporter. | dataFactory.identity.principalId |
managedIdentityTenantId | String | Microsoft Entra-klientorganisations-ID. Dessa utdata behövs när du konfigurerar hanterade exporter. | tenant().tenantId |