Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour en savoir plus sur les données dans les détails des coûts (anciennement appelés détails d’utilisation), consultez Les données sur les détails du coût d’ingestion.
Le rapport Détails des coûts est uniquement disponible pour les clients disposant d’un Accord Entreprise ou d’un Contrat client Microsoft. Si vous êtes un client MSDN, paiement à l’utilisation ou Visual Studio, consultez Obtenir les détails des coûts pour un abonnement de paiement à l’utilisation.
Permissions
Pour utiliser l’API Cost Details, vous avez besoin d’autorisations en lecture seule pour les fonctionnalités et étendues prises en charge.
Note
L’API Cost Details ne prend pas en charge les groupes d’administration pour les clients EA ou MCA.
Pour plus d’informations, consultez :
- Étendues RBAC Azure - Autorisations de rôle pour le comportement des fonctionnalités
- Périmètres du Contrat Entreprise - Permissions de rôle pour le comportement des fonctionnalités
- Étendues du Contrat client Microsoft - Autorisations de rôle pour le comportement des fonctionnalités
Bonnes pratiques relatives à l’API Détails des coûts
Microsoft recommande les meilleures pratiques suivantes lorsque vous utilisez l’API Détails du coût.
Planification des demandes
Si vous souhaitez obtenir les données de coût les plus récentes, nous vous recommandons d’interroger au maximum une fois par jour. Les rapports sont actualisés toutes les quatre heures. Si vous appelez plus fréquemment, vous recevez des données identiques. Une fois que vous avez téléchargé vos données de coût pour les factures historiques, les frais ne changent pas, sauf si vous êtes explicitement averti. Nous vous recommandons de mettre en cache vos données de coût dans un magasin interrogeable de votre côté pour empêcher les appels répétés pour des données identiques.
Segmenter vos demandes
Segmentez vos appels en petites plages de dates pour obtenir des fichiers plus gérables que vous pouvez télécharger sur le réseau. Par exemple, nous vous recommandons de segmenter par jour ou par semaine si vous disposez d’un fichier de coût Azure volumineux mois à mois. Si vous avez des périmètres avec une grande quantité de données relatives au coût (par exemple un compte de facturation), vous devriez faire plusieurs appels vers des sous-périmètres afin d’obtenir des fichiers plus faciles à gérer que vous puissiez télécharger. Pour plus d’informations sur les étendues Cost Management, consultez Comprendre et utiliser les étendues. Après avoir téléchargé les données, utilisez Excel pour analyser les données plus loin avec des filtres et des tableaux croisés dynamiques.
Si votre jeu de données est de plus de 2 Go (ou environ 2 millions de lignes) mois à mois, envisagez d’utiliser Des exportations comme solution plus évolutive.
Limites de latence et de débit
Les appels à l’API à la demande sont soumis à une limite de fréquence. Le temps nécessaire pour générer votre fichier de détails de coût est directement corrélé avec la quantité de données dans le fichier. Pour comprendre la durée attendue avant que votre fichier ne soit disponible en téléchargement, vous pouvez utiliser l’en-tête retry-after dans la réponse de l’API.
Plages de temps de jeu de données prises en charge
L’API Détail des coûts prend en charge une plage de temps maximale de jeu de données d’un mois par rapport. Les données historiques peuvent être récupérées jusqu’à 13 mois avant la date actuelle. Si vous souhaitez amorcer un jeu de données historiques de 13 mois, nous vous recommandons d’effectuer 13 appels dans des jeux de données d'un mois au cours des 13 derniers mois. Pour récupérer des données historiques antérieures à 13 mois, utilisez l’API REST Exports.
Exemples de demandes d’API Détails du coût
Les exemples de requêtes suivants sont utilisés par les clients Microsoft pour résoudre les scénarios courants. Les données retournées par la demande correspondent à la date à laquelle le coût a été reçu par le système de facturation. Elles peuvent inclure des coûts issus de plusieurs factures. Il s’agit d’une API asynchrone. Par conséquent, vous passez un appel initial pour demander votre rapport et vous recevez un lien pour l'interrogation dans l'en-tête de la réponse. À partir de là, vous pouvez consulter le lien fourni jusqu’à ce que le rapport soit à votre disposition.
Utilisez l’en-tête retry-after dans la réponse de l’API pour déterminer quand interroger l’API suivante. L’en-tête fournit une durée minimale estimée de génération de votre rapport.
Pour en savoir plus sur le contrat d’API, consultez l’API Détails du coût .
Coût réel et coût amorti
Pour contrôler si vous souhaitez voir un rapport de coût réel ou amorti, modifiez la valeur utilisée pour le champ de métrique dans le corps de la requête initiale. Les valeurs de métrique disponibles sont ActualCost ou AmortizedCost.
Le coût amorti décompose vos achats de réservation en blocs quotidiens et les répartit sur la durée de la durée de la réservation. Par exemple, au lieu de voir un achat de 365 $ le 1er janvier, vous verrez un achat de 1,00 $ tous les jours du 1er janvier au 31 décembre. En plus de l’amortissement de base, les coûts sont également réaffectés et associés à l’aide des ressources qui ont utilisé la réservation. Par exemple, si les frais quotidiens de 1,00 $ ont été divisés entre deux machines virtuelles, vous voyez deux frais de 0,50 $ pour la journée. Si une partie de la réservation n’est pas utilisée durant la journée, vous verrez une dépense de 0,50 $ associée à la machine virtuelle applicable, et une autre dépense de 0,50 $ de type UnusedReservation. Les coûts de réservation inutilisés sont affichés uniquement lors de l’affichage des coûts amortis.
Comme la représentation des coûts a changé, il est important de noter que les vues des Coût réel et Coût amorti montrent des totaux différents. En général, le coût total de plusieurs mois pour un achat de réservation baisse lorsqu'on examine les coûts amortis au fil du temps. Le coût augmente dans les mois suivant l’achat d'une réservation. L’amortissement est disponible uniquement pour les achats de réservation et ne s’applique pas actuellement aux achats de la Place de marché Azure.
Demande initiale de création d’un rapport
POST https://management.azure.com/{scope}/providers/Microsoft.CostManagement/generateCostDetailsReport?api-version=2022-05-01
Corps de la demande :
Voici un exemple de requête pour un jeu de données ActualCost pour une plage de dates spécifiée.
{
"metric": "ActualCost",
"timePeriod": {
"start": "2020-03-01",
"end": "2020-03-15"
}
}
Les options {scope} disponibles pour générer l’URI approprié sont documentées sous Identifier l’ID de ressource pour un scope.
Voici les champs disponibles que vous pouvez fournir dans le corps de la demande de rapport.
- métrique : type de rapport demandé. Il peut s'agir soit du CoûtRéel, soit du CoûtAmorti. Non obligatoire. Si le champ n'est pas spécifié, l'API choisit par défaut un rapport de coût réel.
- timePeriod : plage de dates demandée pour vos données. Non obligatoire. Ce paramètre ne peut pas être utilisé avec les paramètres invoiceId ou billingPeriod. Si un paramètre timePeriod, invoiceId ou billingPeriod n’est pas fourni dans le corps de la demande, l’API retourne le coût du mois actuel.
- invoiceId : facture demandée pour vos données. Ce paramètre est utilisé uniquement par les clients du Contrat client Microsoft. En outre, il ne peut être utilisé qu’au niveau du profil de facturation ou de l’étendue client. Ce paramètre ne peut pas être utilisé avec les paramètres billingPeriod ou timePeriod. Si un paramètre timePeriod, invoiceId ou billingPeriod n’est pas fourni dans le corps de la demande, l’API retourne le coût du mois actuel.
- billingPeriod : période de facturation demandée pour vos données. Ce paramètre est utilisé uniquement par les clients Contrat Entreprise. Utilisez le format YearMonth. Par exemple, 202008. Ce paramètre ne peut pas être utilisé avec les paramètres invoiceId ou timePeriod. Si un paramètre timePeriod, invoiceId ou billingPeriod n’est pas fourni dans le corps de la demande, l’API retourne le coût du mois actuel.
Réponse de l’API :
Response Status: 202 – Accepted : indique que la demande a été acceptée. Utilisez l’en-tête Location pour vérifier l’état.
En-têtes de réponse :
| Name | Type | Format | Description |
|---|---|---|---|
| Location | String | URL permettant de vérifier le résultat de l’opération asynchrone. | |
| Retry-After | Integer | Int32 | Heure prévue pour la génération de votre rapport. Attendez cette durée avant d’interroger à nouveau. |
Sondage et téléchargement de rapports
Interrogez ce rapport à l’aide du point de terminaison fourni dans l’en-tête location de la réponse de l’API après avoir fait une demande de création d’un rapport du Détails des coûts. Voici un exemple de demande de sondage.
Requête d’interrogation de rapport :
GET https://management.azure.com/{scope}/providers/Microsoft.CostManagement/costDetailsOperationStatus/{operationId}?api-version=2022-05-01
Response Status 200 – Succeeded: indique que la requête a réussi.
{
"id": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.CostManagement/operationResults/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"name": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"status": "Completed",
"manifest": {
"manifestVersion": "2022-05-01",
"dataFormat": "Csv",
"blobCount": 1,
"byteCount": 160769,
"compressData": false,
"requestContext": {
"requestScope": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"requestBody": {
"metric": "ActualCost",
"timePeriod": {
"start": "2020-03-01",
"end": "2020-03-15"
}
}
},
"blobs": [
{
"blobLink": "{downloadLink}",
"byteCount": 32741
}
]
},
"validTill": "2022-05-10T08:08:46.1973252Z"
}
Voici un résumé des champs clés dans la réponse de l’API :
- manifestVersion : version du contrat de manifeste utilisé dans la réponse. À ce stade, la version du manifeste reste la même pour une version d’API donnée.
- dataFormat - CSV est le seul format de fichier pris en charge fourni par l’API pour l’instant.
- blobCount : représente le nombre d’objets blob individuels de données présents dans le jeu de données de rapport. Il est important de noter que cette API peut fournir un jeu de données partitionné de plusieurs fichiers dans la réponse. Concevez vos pipelines de données pour pouvoir gérer les fichiers partitionnés en conséquence. Le partitionnement vous permet d’ingérer des jeux de données plus volumineux plus rapidement.
- byteCount : nombre total d’octets du jeu de données de rapport sur toutes les partitions.
- compressData : la compression est toujours définie sur false pour la première version. Toutefois, l’API prend en charge la compression à l’avenir.
- requestContext : configuration initiale demandée pour le rapport.
-
blobs : liste de fichiers d’objets blob composant le rapport complet.
- blobLink : URL de téléchargement d’une partition d'un blob.
- byteCount : nombre d’octets de la partition d’objet blob individuelle.
- validTill : date à laquelle le rapport n’est plus accessible.
Contenu connexe
- Consultez l’article Ingérer des données sur les détails des coûts.
- En savoir plus sur Choisir une solution de détails sur les coûts.
- Comprendre les champs de détails des coûts.
- Créez et gérez les données exportées dans le portail Azure avec Exports.
- Automatisez la création d'exports et l'ingestion en masse à l'aide de l'API.