Une fois que l'API App Optimize a créé un rapport, vous récupérez les données de coût 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
-
Verify that you have the permissions required to complete this guide.
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de ce document :
gcloud
Installez la Google Cloud CLI.
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud initAprès avoir initialisé la gcloud CLI, mettez-la à jour et installez les composants requis :
gcloud components update gcloud components install beta
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
- Installez la bibliothèque cliente Python pour l'API App Optimize.
-
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.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
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, puis connectez-vous à 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.
Utilisez la commande
curlsuivante 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. SipageSizeest omis, une taille par défaut est utilisée.
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.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êtePOSTqui inclut ce jeton dans le champpageTokendu 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 denextPageTokenreç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.