Udostępnij za pośrednictwem


Szablon centrum FinOps

Za kulisami przyjrzyj się temu, co składa się na szablon centrum FinOps, w tym dane wejściowe i wyjściowe.

Ten szablon tworzy nowe wystąpienie centrum FinOps.

Centra FinOps obejmują:

  • Usługa Data Lake Storage do hostowania danych kosztów.
  • Usługa Data Factory do przetwarzania i aranżacji danych.
  • Usługa Key Vault do przechowywania wpisów tajnych.

Ważne

Aby użyć szablonu, należy utworzyć eksport usługi Cost Management, który publikuje dane kosztów w msexports kontenerze na dołączonym koncie magazynu. Aby uzyskać więcej informacji, zobacz Tworzenie nowego centrum.


Wymagania wstępne

Przed wdrożeniem szablonu upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Aby utworzyć wdrożone zasoby, musisz mieć następujące uprawnienia.

    Zasób Minimalna kontrola dostępu oparta na rolach platformy Azure
    Wdrażanie i konfigurowanie fabryki danych Współautor usługi Data Factory
    Wdrażanie usługi Key Vault Współautor usługi Key Vault
    Konfigurowanie wpisów tajnych usługi Key Vault Key Vault Administrator
    Tworzenie tożsamości zarządzanej Współautor tożsamości zarządzanej
    Wdrażanie i konfigurowanie magazynu Współautor konta magazynu
    Przypisywanie tożsamości zarządzanej do zasobów Operator tożsamości zarządzanej
    Tworzenie skryptów wdrażania Rola niestandardowa zawierająca tylko Microsoft.Resources/deploymentScripts/write uprawnienia i Microsoft.ContainerInstance/containerGroups/write jako dozwolone akcje lub, alternatywnie, Współautor, która obejmuje te uprawnienia i wszystkie powyższe role
    Przypisywanie uprawnień do tożsamości zarządzanych Administrator kontroli dostępu opartej na rolach lub, alternatywnie, właściciel, który obejmuje tę rolę i wszystkie powyższe role
    Tworzenie subskrypcji lub grupy zasobów koszt eksportu² Współautor usługi Cost Management
    Tworzenie eksportu kosztów rozliczeń umowy EA² Czytelnik przedsiębiorstwa, czytelnik działu lub właściciel konta rejestracji (dowiedz się więcej)
    Tworzenie eksportu kosztów rozliczeń umowy MCA² Współautor
    Odczytywanie danych obiektów blob w magazynie³ Współautor danych w usłudze Blob Storage

    ¹ Wystarczy przypisać uprawnienia wdrażania zasobów centrów do zakresu grupy zasobów.
    ² Uprawnienia usługi Cost Management muszą być przypisane do zakresu, z którego chcesz wyeksportować koszty.
    Aby uzyskać dostęp do wyeksportowanych danych kosztów z usługi Power BI lub innych narzędzi klienckich, wymagane są uprawnienia do danych dotyczących danych dotyczących obiektów blob.

  • Dostawca zasobów Microsoft.EventGrid musi być zarejestrowany w subskrypcji. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy zasobów.

    Ważne

    Jeśli zapomnisz ten krok, wdrożenie zakończy się pomyślnie, ale wyzwalacz potoku nie zostanie uruchomiony, a dane nie będą gotowe. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z raportami usługi Power BI.


Parametry

Poniżej przedstawiono parametry, których można użyć do dostosowania wdrożenia:

Parametr Type Opis Domyślna wartość
hubName string Opcjonalny. Nazwa centrum. Służy do zapewnienia unikatowych nazw zasobów. "finops-hub"
location string Opcjonalny. Lokalizacja platformy Azure, w której należy utworzyć wszystkie zasoby. Zobacz: https://aka.ms/azureregions. Tak samo jak wdrożenie
skipEventGridRegistration bool Wskazuje, czy dostawca zasobów usługi Event Grid został już zarejestrowany (na przykład w poprzednim wdrożeniu centrum). Wymagana jest rejestracja dostawcy zasobów usługi Event Grid. Jeśli nie zostanie ustawiona, zostanie utworzona tymczasowa przestrzeń nazw usługi Event Grid w celu autoregister dostawcy zasobów. false (zarejestruj rp)
EventGridLocation string Opcjonalny. Lokalizacja platformy Azure do użycia dla tymczasowej przestrzeni nazw usługi Event Grid w celu zarejestrowania dostawcy zasobów Microsoft.EventGrid, jeśli lokalizacja podstawowa nie jest obsługiwana. Przestrzeń nazw jest usuwana i nie jest używana do operacji centrum. Tak samo jak location
storageSku String Opcjonalny. Jednostka SKU magazynu do użycia. LRS = najniższy koszt, ZRS = wysoka dostępność. Jednostki SKU w warstwie Standardowa nie są dostępne dla magazynu usługi Data Lake Gen2. Dozwolone: Premium_LRS, Premium_ZRS. "Premium_LRS"
tagów obiekt Opcjonalny. Tagi, które mają być stosowane do wszystkich zasobów. Tag cm-resource-parent jest również dodawany do ulepszonych pakietów zbiorczych kosztów w usłudze Cost Management.
tagsByResource obiekt Opcjonalny. Tagi, które mają być stosowane do zasobów na podstawie ich typu zasobu. Tagi specyficzne dla typu zasobu są scalane z tagami dla wszystkich zasobów.
scopesToMonitor tablica Opcjonalny. Lista identyfikatorów zakresu do monitorowania i pozyskiwania kosztów.
exportRetentionInDays int Opcjonalny. Liczba dni przechowywania danych kosztów w kontenerze ms-cm-export. 0
ingestionRetentionInMonths int Opcjonalny. Liczba miesięcy danych kosztów do zachowania w kontenerze pozyskiwania. 13
remoteHubStorageUri string Opcjonalny. Konto magazynu do wypychania danych do pozyskiwania danych do centrum zdalnego.
remoteHubStorageKey string Opcjonalny. Klucz konta magazynu do użycia podczas wypychania danych do centrum zdalnego.

Zasoby

Podczas wdrażania tworzone są następujące zasoby w docelowej grupie zasobów.

Zasoby używają następującej konwencji nazewnictwa: <hubName>-<purpose>-<unique-suffix>. Nazwy są dostosowywane tak, aby uwzględniały ograniczenia długości i znaków. Służy <unique-suffix> do zapewnienia, że nazwy zasobów są globalnie unikatowe, jeśli jest to wymagane.

  • <hubName>store<unique-suffix> konto magazynu (Data Lake Storage Gen2)
    • Kontenery obiektów blob:
      • msexports — Tymczasowo przechowuje eksporty usługi Cost Management.
      • ingestion — przechowuje pozyskane dane.

        Uwaga

        W przyszłości użyjemy tego kontenera do przygotowania danych zewnętrznych poza usługą Cost Management. - config — Przechowuje metadane centrum i ustawienia konfiguracji. Pliki:

        • settings.json — Ustawienia centrum.
        • schemas/focuscost_1.0.json – DEFINICJA schematu FOCUS 1.0 dla konwersji parquet.
        • schemas/focuscost_1.0-preview(v1).json — DEFINICJA schematu FOCUS 1.0 w wersji zapoznawczej dla konwersji parquet.
  • <hubName>-engine-<unique-suffix> Wystąpienie usługi Data Factory
    • Rurociągów:
      • msexports_ExecuteETL — Kolejkuje msexports_ETL_ingestion potok do konta limitów wyzwalacza potoku usługi Data Factory.
      • msexports_ETL_transform — Konwertuje eksporty usługi Cost Management na parquet i usuwa dane historyczne zduplikowane w każdym dniu eksportu.
      • config_ConfigureExports — Tworzy eksporty usługi Cost Management dla wszystkich zakresów.
      • config_StartBackfillProcess — uruchamia zadanie wypełniania dla każdego miesiąca na podstawie ustawień przechowywania.
      • config_RunBackfillJob — Tworzy i wyzwala eksporty dla wszystkich zdefiniowanych zakresów dla określonego zakresu dat.
      • config_StartExportProcess — Pobiera listę wszystkich eksportów usługi Cost Management skonfigurowanych dla tego centrum na podstawie zakresów zdefiniowanych w settings.json, a następnie uruchamia każdy eksport przy użyciu potoku config_RunExportJobs.
      • config_RunExportJobs — Uruchamia określone eksporty usługi Cost Management.
      • msexports_ExecuteETL — Wyzwala proces pozyskiwania eksportów usługi Cost Management do konta limitów wyzwalacza potoku usługi Data Factory.
      • msexports_ETL_transform — Konwertuje eksporty usługi Cost Management na parquet i usuwa dane historyczne zduplikowane w każdym dniu eksportu.
    • Wyzwalaczy:
      • config_SettingsUpdated — wyzwala config_ConfigureExports potok po zaktualizowaniu settings.json.
      • config_DailySchedule — Wyzwala config_RunExportJobs potok codziennie dla danych kosztów bieżącego miesiąca.
      • config_MonthlySchedule — Wyzwala config_RunExportJobs potok co miesiąc dla danych kosztów z poprzedniego miesiąca.
      • msexports_FileAdded — Wyzwala potok po zakończeniu msexports_ExecuteETL eksportowania usługi Cost Management.
  • <hubName>-vault-<unique-suffix> Wystąpienie usługi Key Vault
    • Tajemnice:
      • Tożsamość zarządzana systemu usługi Data Factory

Oprócz powyższych informacji tworzone są następujące zasoby w celu zautomatyzowania procesu wdrażania. Skrypty wdrażania powinny zostać usunięte automatycznie. Nie usuwaj jednak tożsamości zarządzanych, ponieważ może to spowodować błędy podczas uaktualniania do następnej wersji.

  • Tożsamości zarządzane:
    • <storage>_blobManager (Współautor danych obiektu blob usługi Storage) — przekazuje plik settings.json.
    • <datafactory>_triggerManager (Współautor usługi Data Factory) — zatrzymuje wyzwalacze przed wdrożeniem i uruchamia je po wdrożeniu.
  • Skrypty wdrażania (automatycznie usunięte po pomyślnym wdrożeniu):
    • <datafactory>_deleteOldResources — Usuwa nieużywane zasoby z poprzednich wdrożeń centrów FinOps.
    • <datafactory>_stopTriggers — zatrzymuje wszystkie wyzwalacze w centrum przy użyciu tożsamości triggerManager.
    • <datafactory>_startTriggers — uruchamia wszystkie wyzwalacze w centrum przy użyciu tożsamości triggerManager.
    • <storage>_uploadSettings — przekazuje plik settings.json przy użyciu tożsamości obiektu blobManager.

Dane wyjściowe

Poniżej przedstawiono dane wyjściowe generowane przez wdrożenie:

Wyjście Type Opis Wartość
name String Nazwa wdrożonego wystąpienia centrum.
location String Zasoby lokalizacji zasobów platformy Azure zostały wdrożone. location
dataFactorytName String Nazwa fabryki danych. dataFactory.name
storageAccountId String Identyfikator zasobu konta magazynu utworzonego dla wystąpienia centrum. Należy go użyć podczas tworzenia eksportu usługi Cost Management. storage.outputs.resourceId
storageAccountName String Nazwa konta magazynu utworzonego dla wystąpienia centrum. Należy go użyć podczas nawiązywania połączenia z danymi zestawu narzędzi FinOps toolkit usługi Power BI. storage.outputs.name
storageUrlForPowerBI String Adres URL używany podczas łączenia niestandardowych raportów usługi Power BI z danymi. 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}'
managedIdentityId String Identyfikator obiektu tożsamości zarządzanej usługi Data Factory. Te dane wyjściowe są potrzebne podczas konfigurowania eksportów zarządzanych. dataFactory.identity.principalId
managedIdentityTenantId String Identyfikator dzierżawy entra firmy Microsoft. Te dane wyjściowe są potrzebne podczas konfigurowania eksportów zarządzanych. tenant().tenantId