Obtenir des jeux de données à faible coût à la demande

Utilisez l’API Détails des coûts pour obtenir des données de coût brutes non agrégées correspondant à votre facture Azure. L’API est utile lorsque votre organisation a besoin d’une solution d’extraction de données par programme. Envisagez d’utiliser l’API si vous souhaitez analyser des jeux de données à moindre coût de 2 Go (2 millions de lignes) ou moins. Toutefois, vous devez utiliser les exportations pour les charges de travail d’ingestion de données en cours et le téléchargement de jeux de données plus volumineux.

Si vous souhaitez obtenir régulièrement de grandes quantités de données exportées, consultez Récupérer de grands jeux de données de coûts de façon récurrente avec des exportations.

Pour en savoir plus sur les données liées aux détails des coûts (précédemment appelés détails d’utilisation), consultez Ingérer des données de détails des coûts.

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 avec paiement à l’utilisation.

Autorisations

Pour utiliser l’API de détails des coûts, vous avez besoin d’autorisations en lecture seule pour les fonctionnalités et les étendues prises en charge.

Notes

L’API Détails des coûts ne prend pas en charge les groupes d’administration pour les clients Contrat Entreprise ou MCA.

Pour plus d'informations, consultez les pages suivantes :

Meilleures pratiques avec l’API Détails des coûts

Microsoft recommande les meilleures pratiques suivantes lorsque vous utilisez l’API Détails des coûts.

Planification des demandes

Si vous souhaitez obtenir les données de coût les plus récentes, nous vous recommandons d’interroger au plus 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. Après avoir téléchargé vos données de coût pour les factures historiques, les frais ne changent pas, sauf si vous êtes explicitement notifié. Nous vous recommandons de mettre en cache vos données de coût dans un magasin utilisable dans une requête et ce, afin d’éviter les appels répétés de données identiques.

Segmenter vos requêtes

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 une segmentation par jour ou par semaine si vous avez un fichier de coûts Azure volumineux de mois en mois. Si vous avez des étendues avec une grande quantité de données de coûts (par exemple, un compte de facturation), envisagez d’effectuer plusieurs appels d’étendues enfants afin d’obtenir des fichiers plus gérables que vous pouvez 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 en détail avec les filtres et les tableaux croisés dynamiques.

Si la taille de votre jeu de données est supérieure à 2 Go (ou environ 2 millions de lignes) de mois en mois, envisagez d’utiliser des exportations en guise de solution plus évolutive.

Latence et limites du taux de transfert

Les appels à la demande à l’API sont limités. Le temps nécessaire pour générer votre fichier de détails de coût est directement mis en corrélation avec la quantité de données du fichier. Pour comprendre nécessaire à la mise à disposition de votre fichier en téléchargement, vous pouvez utiliser l’en-tête retry-after dans la réponse de l’API.

Intervalles de temps de jeu de données pris 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 requêtes envoyées à l’API Détails des coûts

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 requête 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 devez effectuer un appel initial pour demander votre rapport et recevoir un lien d’interrogation dans l’en-tête de réponse. À partir de là, vous pouvez interroger le lien fourni jusqu’à la mise à disposition du rapport.

Utilisez l’en-tête retry-after dans la réponse de l’API pour déterminer le moment de la prochaine interrogation de l’API. L'en-tête fournit une estimation du temps minimum que prend la génération de votre rapport.

Pour en savoir plus sur le contrat d’API, consultez l’API Détails des coûts.

Coût réel et coût amorti

Pour afficher un rapport de coût réel ou de coût amorti, modifiez la valeur du champ de métrique dans le corps de la requête initiale. Les valeurs de métrique disponibles sont ActualCost ou AmortizedCost.

La vue Coût amorti répartit vos achats de réservation jour par jour et les étale sur toute la durée de la réservation. Par exemple, au lieu de voir un achat d’un montant de 365 $ le 1er janvier, vous verrez un achat de 1,00 $ chaque jour, 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 la charge quotidienne de 1 $ est répartie entre deux machines virtuelles, vous verrez deux charges 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 liés aux réservations non utilisées ne sont visibles que lors de la visualisation du coût amorti.

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 règle générale, le coût total d’un achat de réservation étalé sur plusieurs mois diminue lorsque vous affichez les coûts amortis. Les coûts augmentent au cours des mois qui suivent un achat de réservation. L’amortissement est disponible seulement pour les achats de réservation et ne s’applique actuellement pas aux achats effectués sur la Place de marché Azure.

Requête initiale de création de 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 correspondant à 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 dans Identifier l’ID de ressource d’une étendue.

Voici les champs disponibles que vous pouvez fournir dans le corps de la demande de rapport.

  • metric : type de rapport demandé. Il peut s’agir d’un rapport ActualCost ou AmortizedCost. Non obligatoire. Si le champ n’est pas spécifié, l’API est définie par défaut sur un rapport ActualCost.
  • 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 en cours.
  • invoiceId : facture demandée pour vos données. Ce paramètre est réservé aux clients dotés d’un 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 en cours.
  • billingPeriod : période de facturation demandée pour vos données. Ce paramètre est réservé aux clients dotés d’un 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 en cours.

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 :

Nom Type Format Description
Emplacement 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'effectuer une nouvelle interrogation.

Interrogation et téléchargement d’un rapport

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 d’interrogation.

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 demande a abouti.

{
  "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CostManagement/operationResults/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "status": "Completed",
  "manifest": {
    "manifestVersion": "2022-05-01",
    "dataFormat": "Csv",
    "blobCount": 1,
    "byteCount": 160769,
    "compressData": false,
    "requestContext": {
      "requestScope": "subscriptions/00000000-0000-0000-0000-000000000000",
      "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 principaux champs de 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 actuellement pris en charge fourni par l’API.
  • blobCount : représente le nombre d’objets blob de données individuels présents dans le jeu de données du 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 de manière à 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 prendra 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’objets blob individuelle.
    • byteCount : nombre d’octets de la partition d’objets blob individuelle.
  • validTill : date à laquelle le rapport n’est plus accessible.

Étapes suivantes