Lire les données d'un rapport

Une fois que l'API App Optimize a créé un rapport, vous récupérez les données de coûts et d'utilisation du rapport. Cette opération télécharge ces informations sous forme de colonnes et de lignes, structurées en fonction des dimensions et des métriques que vous avez spécifiées lorsque vous avez demandé votre rapport.

Cette requête API est différente de l'obtention des métadonnées d'un rapport, qui ne renvoie que les paramètres de configuration du rapport.

Avant de commencer

gcloud

Dans la console Google Cloud , activez Cloud Shell.

Activer Cloud Shell

En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

Pour en savoir plus sur la configuration de l'authentification dans un environnement de production, consultez Configurer les Identifiants par défaut de l'application pour le code s'exécutant sur Google Cloud dans la documentation sur l'authentification Google Cloud .

Python

  1. Installez la bibliothèque cliente Python pour l'API App Optimize.
  2. Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.

    1. Installez la Google Cloud CLI.

    2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    3. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

      Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Google Cloud .

    Pour en savoir plus sur la configuration de l'authentification dans un environnement de production, consultez Configurer les Identifiants par défaut de l'application pour le code s'exécutant sur Google Cloud dans la documentation sur l'authentification Google Cloud .

REST

Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

    Installez la Google Cloud CLI.

    Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Pour en savoir plus sur la configuration de l'authentification dans un environnement de production, consultez Configurer les Identifiants par défaut de l'application pour le code s'exécutant sur Google Cloud dans la documentation sur l'authentification Google Cloud .

Rôles requis

Pour obtenir les autorisations nécessaires pour lire les données d'un rapport, demandez à votre administrateur de vous accorder le rôle IAM Lecteur App Optimize (roles/appoptimize.viewer) sur le projet qui possède la ressource de rapport. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Lire les données des rapports

Pour lire les données d'un rapport terminé, suivez les instructions de votre méthode préférée :

gcloud

Utilisez la commande gcloud beta app-optimize reports read pour récupérer les données d'un rapport.

gcloud beta app-optimize reports read REPORT_ID \
  --project=PROJECT_ID \
  --location=global

Remplacez les éléments suivants :

  • PROJECT_ID : ID du Google Cloud projet propriétaire de la ressource de rapport que vous souhaitez lire.
  • REPORT_ID : ID du rapport à lire. Cet ID a été spécifié lors de la création du rapport et peut être obtenu en listant les rapports.

La commande gcloud gère automatiquement la pagination et renvoie toutes les ressources demandées.

Pour comprendre les valeurs du champ cost, consultez Interpréter les métriques de coût. Pour en savoir plus sur les données et leurs limites, consultez Comprendre les données.

Python

Le code Python suivant utilise AppOptimizeClient.read_report() pour lire les données d'un rapport.

from google.cloud import appoptimize_v1beta

project_id = "PROJECT_ID"
report_id = "REPORT_ID"

# Create the App Optimize client and read a report's data
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.ReadReportRequest(
    name=f"projects/{project_id}/locations/global/reports/{report_id}"
)
result = client.read_report(request=request)

# Display the report data
print(result)

Remplacez les éléments suivants :

  • PROJECT_ID : ID du Google Cloud projet propriétaire de la ressource de rapport que vous souhaitez lire.
  • REPORT_ID : ID du rapport à lire. Cet ID a été spécifié lors de la création du rapport et peut être obtenu en listant les rapports.

La bibliothèque cliente gère automatiquement la pagination et génère les résultats à partir de l'itérateur.

Pour comprendre les valeurs du champ cost, consultez Interpréter les métriques de coût. Pour en savoir plus sur les données et leurs limites, consultez Comprendre les données.

REST

Envoyez une requête HTTP POST à la méthode personnalisée :read de l'API REST.

  1. Utilisez la commande curl suivante pour envoyer cette requête et lire la première page des données du rapport :

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du Google Cloud projet propriétaire de la ressource de rapport que vous souhaitez lire.
    • REPORT_ID : ID du rapport à lire. Cet ID a été spécifié lors de la création du rapport et peut être obtenu en listant les rapports.
    • PAGE_SIZE : nombre maximal de lignes à renvoyer par page. Le serveur renvoie un maximum de 1 000 lignes par page, même si vous spécifiez une valeur supérieure. Les réponses sont également soumises à une limite de taille de 10 Mo. Il est donc possible que moins de lignes soient renvoyées pour respecter cette limite. Si pageSize est omis, une taille par défaut est utilisée.
  2. Si la requête aboutit, l'API renvoie une réponse JSON contenant le schéma et les lignes du rapport. Voici un exemple de réponse positive :

    {
      "rows": [
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-1",
          {
            "currency_code": "USD",
            "units": "106",
            "nanos": 321590000
          }
        ],
        [
          "//apphub.googleapis.com/projects/123456789/locations/us-central1/applications/my-app-2",
          {
            "currency_code": "USD",
            "units": "797",
            "nanos": 641691000
          }
        ]
      ],
      "columns": [
        {
          "name": "application",
          "type": "STRING"
        },
        {
          "name": "cost",
          "type": "RECORD",
          "columns": [
            {
              "name": "currency_code",
              "type": "STRING"
            },
            {
              "name": "units",
              "type": "INT64"
            },
            {
              "name": "nanos",
              "type": "INT64"
            }
          ]
        }
      ],
      "nextPageToken": "AABBCCddeeffGGHHiiJJkkLL"
    }
    

    Pour comprendre les valeurs du champ cost, consultez Interpréter les métriques de coût. Pour en savoir plus sur les données et leurs limites, consultez Comprendre les données.

  3. Si la réponse inclut un champ nextPageToken, le rapport contient des lignes supplémentaires. Pour extraire la page de résultats suivante, effectuez une autre requête POST qui inclut ce jeton dans le champ pageToken du corps JSON :

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{"pageToken": "NEXT_PAGE_TOKEN", "pageSize": PAGE_SIZE}' \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
    

    Remplacez les éléments suivants :

    • NEXT_PAGE_TOKEN : valeur de nextPageToken reçue dans la réponse précédente.
    • PAGE_SIZE : nombre maximal de lignes à renvoyer par page. Vous pouvez modifier cette valeur entre les demandes de page, mais les limites côté serveur s'appliquent toujours.

    Répétez ce processus jusqu'à ce que la réponse ne contienne plus de nextPageToken, ce qui indique que vous avez récupéré toutes les données du rapport.

Étapes suivantes