Partager via


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 les Microsoft.Resources/deploymentScripts/write actions autorisées ou, alternativement, Contributeur, qui inclut ces autorisations et tous les rôles ci-dessus
    Attribuer 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.
  • <hubName>-engine-<unique-suffix> Instance Data Factory
    • Pipelines:
      • msexports_ExecuteETL : met en file d’attente le msexports_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 le config_ConfigureExports pipeline lorsque settings.json est mis à jour.
      • config_DailySchedule : déclenche le config_RunExportJobs pipeline quotidiennement pour les données de coût du mois en cours.
      • config_MonthlySchedule : déclenche le config_RunExportJobs pipeline mensuel pour les données de coût du mois précédent.
      • msexports_FileAdded : déclenche le msexports_ExecuteETL pipeline lorsque les exportations Cost Management sont terminées.
  • <hubName>-vault-<unique-suffix> Instance Key Vault
    • Secrets :
      • Identité managée du système Data Factory

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