FinOps ハブ テンプレート
バックグラウンドで、入力や出力など、FinOps ハブ テンプレートを構成するものを確認します。
このテンプレートは、新しい FinOps ハブ インスタンスを作成します。
FinOps ハブには次のものが含まれます。
- コスト データをホストする Data Lake Storage。
- データ処理とオーケストレーションのための Data Factory。
- シークレットを格納するための Key Vault。
重要
テンプレートを使用するには、コスト データを含まれるストレージ アカウントの msexports
コンテナーに発行する Cost Management エクスポートを作成する必要があります。 詳細については、「 新しいハブの作成」を参照してください。
前提条件
テンプレートをデプロイする前に、次の前提条件が満たされていることを確認します。
デプロイされたリソースを作成するには、次のアクセス許可が必要です。
リソース 最小 Azure RBAC Data Factory のデプロイと構成¹ Data Factory Contributor Key Vault のデプロイ¹ Key Vault Contributor Key Vault シークレットの構成¹ Key Vault Administrator マネージド ID の作成¹ Managed Identity Contributor ストレージのデプロイと構成¹ Storage Account Contributor リソースにマネージド ID を割り当てる¹ Managed Identity Operator デプロイ スクリプトの作成¹ 許可されたアクションとして Microsoft.Resources/deploymentScripts/write
とMicrosoft.ContainerInstance/containerGroups/write
のアクセス許可のみを含むカスタム ロール、またはこれらのアクセス許可と上記のすべてのロールを含む Contributorマネージド ID にアクセス許可を割り当てる¹ ロール ベースのアクセス制御管理者または、このロールと上記のすべてのロールを含む Owner サブスクリプションまたはリソース グループコストのエクスポート² を作成する Cost Management 共同作成者 EA 課金コストのエクスポート² を作成する エンタープライズ閲覧者、部門閲覧者、または登録アカウント所有者 (詳細情報) MCA 課金コストのエクスポート² を作成する Contributor ストレージの BLOB データの読み取り ² ストレージ BLOB データ共同作成者 ¹ リソース グループ スコープに対するハブ リソースのデプロイアクセス許可を割り当てるので十分です。
² コスト管理のアクセス許可は、コストをエクスポートするスコープに割り当てる必要があります。
Power BI またはその他のクライアント ツールからエクスポートされたコスト データにアクセスするには、² BLOB データのアクセス許可が必要です。Microsoft.EventGrid リソース プロバイダーは、サブスクリプションに登録する必要があります。 詳細については、「 リソース プロバイダーを登録するを参照してください。
重要
この手順を忘れた場合、デプロイは成功しますが、パイプライン トリガーは開始されず、データの準備はできなくなります。 詳細については、「 Power BI レポートのトラブルシューティングを参照してください。
パラメーター
デプロイのカスタマイズに使用できるパラメーターを次に示します。
パラメーター | 型 | 説明 | 規定値 |
---|---|---|---|
hubName | string | 省略可能。 ハブの名前。 一意のリソース名を確保するために使用されます。 | "finops-hub" |
location | string | 省略可能。 すべてのリソースを作成する必要がある Azure の場所。 以下を参照してください。https://aka.ms/azureregions | デプロイと同じ |
skipEventGridRegistration | [bool] | Event Grid リソース プロバイダーが既に登録されているかどうかを示します (たとえば、以前のハブデプロイ)。 Event Grid RP の登録が必要です。 設定されていない場合は、リソース プロバイダーを自動登録するための一時的な Event Grid 名前空間が作成されます。 | false (RP の登録) |
EventGridLocation | string | 省略可能。 プライマリの場所がサポートされていない場合に Microsoft.EventGrid リソース プロバイダーを登録するために一時的な Event Grid 名前空間に使用する Azure の場所。 名前空間は削除され、ハブ操作には使用されません。 | location と同じ |
storageSku | String | 省略可能。 使用するストレージ SKU。 LRS = 最低コスト、ZRS = 高可用性。 Data Lake gen2 ストレージでは、Standard SKU を使用できません。 許可: Premium_LRS 、 Premium_ZRS 。 |
"Premium_LRS" |
tags | オブジェクト | 省略可能。 すべてのリソースに適用するタグ。 cm-resource-parent タグも追加され、Cost Management のコストロールアップが向上します。 |
|
tagsByResource | オブジェクト | 省略可能。 リソースの種類に基づいてリソースに適用するタグ。 リソースの種類固有のタグは、すべてのリソースのタグとマージされます。 | |
scopesToMonitor | 配列 | 省略可能。 コストを監視および取り込むスコープ ID の一覧。 | |
exportRetentionInDays | int | 省略可能。 ms-cm-exports コンテナーに保持するコスト データの日数。 | 0 |
ingestionRetentionInMonths | int | 省略可能。 インジェスト コンテナーに保持するコスト データの月数。 | 13 |
remoteHubStorageUri | string | 省略可能。 データをプッシュしてリモート ハブに取り込むストレージ アカウント。 | |
remoteHubStorageKey | string | 省略可能。 リモート ハブにデータをプッシュするときに使用するストレージ アカウント キー。 |
リソース
デプロイ時に、ターゲット リソース グループに次のリソースが作成されます。
リソースでは、 <hubName>-<purpose>-<unique-suffix>
という名前付け規則が使用されます。 名前は、長さと文字の制限を考慮して調整されます。 <unique-suffix>
は、リソース名が必要に応じてグローバルに一意であることを確認するために使用されます。
<hubName>store<unique-suffix>
ストレージ アカウント (Data Lake Storage Gen2)- BLOB コンテナー:
msexports
– Cost Management のエクスポートを一時的に格納します。ingestion
– 取り込まれたデータを格納します。Note
将来的には、このコンテナーを使用して、Cost Management の外部で外部データをステージングします。 -
config
– ハブのメタデータと構成設定を格納します。 ファイル:settings.json
– ハブの設定。schemas/focuscost_1.0.json
– Parquet 変換用の FOCUS 1.0 スキーマ定義。schemas/focuscost_1.0-preview(v1).json
– Parquet 変換用の FOCUS 1.0-preview スキーマ定義。
- BLOB コンテナー:
<hubName>-engine-<unique-suffix>
Data Factory インスタンス- パイプライン:
msexports_ExecuteETL
– Data Factory パイプライン トリガーの制限を考慮するために、msexports_ETL_ingestion
パイプラインをキューに入れます。msexports_ETL_transform
– Cost Management のエクスポートを Parquet に変換し、各日のエクスポートで複製された履歴データを削除します。config_ConfigureExports
– すべてのスコープの Cost Management エクスポートを作成します。config_StartBackfillProcess
– 保持設定に基づいて、毎月のバックフィル ジョブを実行します。config_RunBackfillJob
– 指定した日付範囲に対して定義されているすべてのスコープのエクスポートを作成してトリガーします。config_StartExportProcess
– settings.jsonで定義されているスコープに基づいて、このハブ用に構成されているすべての Cost Management エクスポートの一覧を取得し、config_RunExportJobs パイプラインを使用して各エクスポートを実行します。config_RunExportJobs
– 指定した Cost Management エクスポートを実行します。msexports_ExecuteETL
– Data Factory パイプライントリガーの制限を考慮して、Cost Management エクスポートのインジェスト プロセスをトリガーします。msexports_ETL_transform
– Cost Management のエクスポートを Parquet に変換し、各日のエクスポートで複製された履歴データを削除します。
- トリガー:
config_SettingsUpdated
– settings.jsonが更新されたときに、config_ConfigureExports
パイプラインをトリガーします。config_DailySchedule
– 現在の月のコスト データに対して毎日、config_RunExportJobs
パイプラインをトリガーします。config_MonthlySchedule
– 前月のコスト データに対して毎月config_RunExportJobs
パイプラインをトリガーします。msexports_FileAdded
– Cost Management のエクスポートが完了したときに、msexports_ExecuteETL
パイプラインをトリガーします。
- パイプライン:
<hubName>-vault-<unique-suffix>
Key Vault インスタンス- シークレット:
- Data Factory システムマネージド ID
- シークレット:
上記の情報に加えて、デプロイ プロセスを自動化するために次のリソースが作成されます。 デプロイ スクリプトは自動的に削除する必要があります。 ただし、次のリリースにアップグレードするときにエラーが発生する可能性があるため、マネージド ID を削除しないでください。
- マネージド ID:
<storage>_blobManager
(Storage BLOB データ共同作成者) – settings.json ファイルをアップロードします。<datafactory>_triggerManager
(Data Factory 共同作成者) – デプロイ前にトリガーを停止し、デプロイ後に開始します。
- デプロイ スクリプト (デプロイが成功した後に自動的に削除):
<datafactory>_deleteOldResources
– 以前の FinOps ハブデプロイから未使用のリソースを削除します。<datafactory>_stopTriggers
– triggerManager ID を使用して、ハブ内のすべてのトリガーを停止します。<datafactory>_startTriggers
– triggerManager ID を使用してハブ内のすべてのトリガーを開始します。<storage>_uploadSettings
– blobManager ID を使用してsettings.json ファイルをアップロードします。
出力
デプロイによって生成される出力を次に示します。
出力 | 型 | 説明 | 値 |
---|---|---|---|
name | String | デプロイされたハブ インスタンスの名前。 | |
location | String | Azure リソースの場所のリソースがデプロイされました。 | location |
dataFactorytName | String | Data Factory の名前。 | dataFactory.name |
storageAccountId | String | ハブ インスタンス用に作成されたストレージ アカウントのリソース ID。 Cost Management エクスポートの作成時に使用する必要があります。 | storage.outputs.resourceId |
storageAccountName | String | ハブ インスタンス用に作成されたストレージ アカウントの名前。 これは、FinOps ツールキットの Power BI レポートをデータに接続するときに使用する必要があります。 | storage.outputs.name |
storageUrlForPowerBI | String | カスタム Power BI レポートをデータに接続するときに使用する URL。 | 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}' |
managedIdentityId | String | Data Factory マネージド ID のオブジェクト ID。 この出力は、マネージド エクスポートを構成するときに必要です。 | dataFactory.identity.principalId |
managedIdentityTenantId | String | Microsoft Entra テナント ID。 この出力は、マネージド エクスポートを構成するときに必要です。 | tenant().tenantId |