Modèle de hub FinOps
En arrière-plan, examinez ce qui compose le modèle de hub FinOps, y compris les entrées et les sorties.
Ce modèle crée une instance de hub FinOps.
Les hubs FinOps sont les suivants :
- Data Lake Storage pour héberger des données de coût.
- Data Factory pour le traitement et l’orchestration des données.
- Key Vault pour le stockage des secrets.
Important
Pour utiliser le modèle, vous devez créer une exportation Cost Management qui publie des données de coût sur le msexports
conteneur dans le compte de stockage inclus. Pour plus d’informations, consultez Créer un hub.
Prérequis
Vérifiez que les conditions préalables suivantes sont remplies avant de déployer le modèle :
Vous devez disposer des autorisations suivantes pour créer les ressources déployées.
Ressource Minimum Azure RBAC Déployer et configurer Data Factory¹ Contributeurs de fabrique de données Déployer Key Vault¹ Contributeur Key Vault Configurer les secrets Key Vault¹ Administrateur Key Vault Créer une identité managée¹ Contributeur d’identités gérées Déployer et configurer le stockage¹ Contributeur de compte de stockage Affecter une identité managée aux ressources¹ Opérateur d’identités gérées Créer des scripts de déploiement¹ Rôle personnalisé contenant uniquement les autorisations et Microsoft.ContainerInstance/containerGroups/write
lesMicrosoft.Resources/deploymentScripts/write
actions autorisées ou, alternativement, Contributeur, qui inclut ces autorisations et tous les rôles ci-dessusAttribuer des autorisations à des identités managées¹ Administrateur du contrôle d’accès en fonction du rôle ou, alternativement, propriétaire, qui inclut ce rôle et tous les rôles ci-dessus Créer un abonnement ou un coût de groupe de ressources export² Contributeur Cost Management Créer une exportation de coût de facturation EA² Lecteur d’entreprise, Lecteur du service ou Propriétaire du compte d’inscription (En savoir plus) Créer une exportation de coût de facturation MCA² Contributeur Lire les données d’objet blob dans le stockage³ Contributeur aux données Blob du stockage ¹ Il suffit d’attribuer des autorisations de déploiement de ressources hubs sur l’étendue du groupe de ressources.
Les autorisations Cost Management doivent être attribuées sur l’étendue à partir de laquelle vous souhaitez exporter vos coûts.
Les autorisations de données blob sont requises pour accéder aux données de coût exportées à partir de Power BI ou d’autres outils clients.Le fournisseur de ressources Microsoft.EventGrid doit être inscrit dans votre abonnement. Pour plus d’informations, consultez Inscrire un fournisseur de ressources.
Important
Si vous oubliez cette étape, le déploiement réussit, mais le déclencheur de pipeline ne sera pas démarré et les données ne seront pas prêtes. Pour plus d’informations, consultez Résolution des problèmes liés aux rapports Power BI.
Paramètres
Voici les paramètres que vous pouvez utiliser pour personnaliser le déploiement :
Paramètre | Type | Description | Valeur par défaut |
---|---|---|---|
hubName | string | facultatif. Nom du hub. Permet de garantir des noms de ressources uniques. | « finops-hub » |
location | string | facultatif. Emplacement Azure où toutes les ressources doivent être créées. Consultez l’article https://aka.ms/azureregions. | Identique au déploiement |
skipEventGridRegistration | bool | Indique si le fournisseur de ressources Event Grid a déjà été inscrit (par exemple, dans un déploiement de hub précédent). L’inscription de rp Event Grid est requise. S’il n’est pas défini, un espace de noms Event Grid temporaire est créé pour enregistrer automatiquement le fournisseur de ressources. | false (inscrire le fournisseur de ressources) |
EventGridLocation | string | facultatif. Emplacement Azure à utiliser pour un espace de noms Event Grid temporaire pour inscrire le fournisseur de ressources Microsoft.EventGrid si l’emplacement principal n’est pas pris en charge. L’espace de noms est supprimé et n’est pas utilisé pour l’opération hub. | Identique à location |
storageSku | Chaîne | facultatif. Référence SKU de stockage à utiliser. LRS = Coût le plus bas, ZRS = Haute disponibilité. Les références SKU standard ne sont pas disponibles pour le stockage Data Lake gen2. Autorisé : Premium_LRS , Premium_ZRS . |
« Premium_LRS » |
balises | object | facultatif. Balises à appliquer à toutes les ressources. La cm-resource-parent balise est également ajoutée pour améliorer les cumuls de coûts dans Cost Management. |
|
tagsByResource | object | facultatif. Balises à appliquer aux ressources en fonction de leur type de ressource. Les balises spécifiques au type de ressource sont fusionnées avec des balises pour toutes les ressources. | |
scopesToMonitor | tableau | facultatif. Liste des ID d’étendue pour surveiller et ingérer les coûts. | |
exportRetentionInDays | int | facultatif. Nombre de jours de données de coût à conserver dans le conteneur ms-cm-export. | 0 |
ingestionRetentionInMonths | int | facultatif. Nombre de mois de données de coût à conserver dans le conteneur d’ingestion. | 13 |
remoteHubStorageUri | string | facultatif. Compte de stockage vers lequel envoyer des données pour l’ingestion dans un hub distant. | |
remoteHubStorageKey | string | facultatif. Clé de compte de stockage à utiliser lors de l’envoi de données vers un hub distant. |
Ressources
Les ressources suivantes sont créées dans le groupe de ressources cible pendant le déploiement.
Les ressources utilisent la convention d’affectation de noms suivante : <hubName>-<purpose>-<unique-suffix>
. Les noms sont ajustés pour tenir compte des restrictions de longueur et de caractère. Permet <unique-suffix>
de s’assurer que les noms de ressources sont globalement uniques si nécessaire.
<hubName>store<unique-suffix>
compte de stockage (Data Lake Storage Gen2)- Conteneurs d’objets blob :
msexports
: stocke temporairement les exportations Cost Management.ingestion
: stocke les données ingérées.Remarque
À l’avenir, nous allons utiliser ce conteneur pour mettre en scène des données externes en dehors de Cost Management. -
config
: stocke les métadonnées et les paramètres de configuration du hub. Fichiers :settings.json
– Paramètres du hub.schemas/focuscost_1.0.json
– Définition de schéma FOCUS 1.0 pour la conversion parquet.schemas/focuscost_1.0-preview(v1).json
– Définition de schéma focus 1.0-preview pour la conversion Parquet.
- Conteneurs d’objets blob :
<hubName>-engine-<unique-suffix>
Instance Data Factory- Pipelines:
msexports_ExecuteETL
: met en file d’attente lemsexports_ETL_ingestion
pipeline pour prendre en compte les limites de déclencheur de pipeline Data Factory.msexports_ETL_transform
: convertit les exportations Cost Management en parquet et supprime les données historiques dupliquées dans l’exportation de chaque jour.config_ConfigureExports
: crée des exportations Cost Management pour toutes les étendues.config_StartBackfillProcess
: exécute le travail de remplissage pour chaque mois en fonction des paramètres de rétention.config_RunBackfillJob
: crée et déclenche des exportations pour toutes les étendues définies pour la plage de dates spécifiée.config_StartExportProcess
: obtient la liste de toutes les exportations Cost Management configurées pour ce hub en fonction des étendues définies dans settings.json, puis exécute chaque exportation à l’aide du pipeline config_RunExportJobs.config_RunExportJobs
: exécute les exportations Cost Management spécifiées.msexports_ExecuteETL
: déclenche le processus d’ingestion des exportations Cost Management pour tenir compte des limites de déclencheur de pipeline Data Factory.msexports_ETL_transform
: convertit les exportations Cost Management en parquet et supprime les données historiques dupliquées dans l’exportation de chaque jour.
- Déclenche:
config_SettingsUpdated
: déclenche leconfig_ConfigureExports
pipeline lorsque settings.json est mis à jour.config_DailySchedule
: déclenche leconfig_RunExportJobs
pipeline quotidiennement pour les données de coût du mois en cours.config_MonthlySchedule
: déclenche leconfig_RunExportJobs
pipeline mensuel pour les données de coût du mois précédent.msexports_FileAdded
: déclenche lemsexports_ExecuteETL
pipeline lorsque les exportations Cost Management sont terminées.
- Pipelines:
<hubName>-vault-<unique-suffix>
Instance Key Vault- Secrets :
- Identité managée du système Data Factory
- Secrets :
Outre les informations précédentes, les ressources suivantes sont créées pour automatiser le processus de déploiement. Les scripts de déploiement doivent être supprimés automatiquement. Toutefois, ne supprimez pas les identités managées, car cela peut entraîner des erreurs lors de la mise à niveau vers la prochaine version.
- Identités managées :
<storage>_blobManager
(Contributeur aux données blob de stockage) : charge le fichier settings.json.<datafactory>_triggerManager
(Contributeur Data Factory) : arrête les déclencheurs avant le déploiement et les démarre après le déploiement.
- Scripts de déploiement (supprimés automatiquement après un déploiement réussi) :
<datafactory>_deleteOldResources
: supprime les ressources inutilisées des déploiements FinOps hubs précédents.<datafactory>_stopTriggers
: arrête tous les déclencheurs dans le hub à l’aide de l’identité triggerManager.<datafactory>_startTriggers
: démarre tous les déclencheurs dans le hub à l’aide de l’identité triggerManager.<storage>_uploadSettings
: charge le fichier settings.json à l’aide de l’identité blobManager.
Outputs
Voici les sorties générées par le déploiement :
Sortie | Type | Description | Valeur |
---|---|---|---|
nom | Chaîne | Nom de l’instance de hub déployée. | |
location | Chaîne | Les ressources d’emplacement des ressources Azure ont été déployées sur. | location |
dataFactorytName | Chaîne | Nom de Data Factory. | dataFactory.name |
storageAccountId | Chaîne | ID de ressource du compte de stockage créé pour l’instance hub. Il doit être utilisé lors de la création de l’exportation Cost Management. | storage.outputs.resourceId |
storageAccountName | Chaîne | Nom du compte de stockage créé pour l’instance hub. Il doit être utilisé lors de la connexion de rapports Power BI finOps toolkit à vos données. | storage.outputs.name |
storageUrlForPowerBI | Chaîne | URL à utiliser lors de la connexion de rapports Power BI personnalisés à vos données. | 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}' |
managedIdentityId | Chaîne | ID d’objet de l’identité managée Data Factory. Cette sortie est nécessaire lors de la configuration des exportations managées. | dataFactory.identity.principalId |
managedIdentityTenantId | Chaîne | ID de locataire Microsoft Entra. Cette sortie est nécessaire lors de la configuration des exportations managées. | tenant().tenantId |