Bericht erstellen und lesen
Hier erfahren Sie, wie Sie einen App Optimize API-Bericht zu Ihren Google Cloud Ressourcenkosten erstellen, die Berichterstellung überwachen und die resultierenden Daten lesen, wenn sie für Sie bereit sind. In dieser Kurzanleitung können Sie die REST API oder die Python-Clientbibliothek verwenden.
Hinweis
Für die Beispiele in dieser Anleitung ist ein Google Cloud Projekt mit aktiven Ressourcen für die Analyse erforderlich. Die App Optimize API benötigt Abrechnungs- und Nutzungsdaten, um aussagekräftige Ergebnisse zu liefern. Berichte, die für neue oder leere Projekte ausgeführt werden, sind leer.
In dieser Anleitung stellt das als
PROJECT_IDidentifizierte Projekt den Datenbereich bereit und hostet die Berichtsressource.Die App Optimize API unterstützt das Erstellen von Berichten in einem Projekt in dem Daten aus einem anderen Projekt oder aus Anwendungen in Einzelprojekt- oder Ordnergrenzen analysiert werden. Wenn Sie einen Bericht zu einer App Hub-Anwendung erstellen möchten, die aus mehreren Projekten bestehen kann, benötigen Sie die erforderlichen Berechtigungen für das Monitoring und die Abrechnung für alle zugehörigen Projekte der Anwendung.
Prüfen Sie, ob die App Optimize API aktiviert ist für das Projekt, mit dem Sie die Berichts ressource erstellen und verwalten möchten.
-
Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie noch kein Konto bei Google Cloudhaben, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Verify that you have the permissions required to complete this guide.
Wählen Sie den Tab für die Verwendung der Beispiele in diesem Dokument aus:
gcloud
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Google Cloud Dokumentation zur-Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der in Google Cloud ausgeführt wird.
Python
- Installieren Sie die Python-Clientbibliothek für die App Optimize API.
-
Wenn Sie die Python-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, ist dies nicht erforderlich.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Weitere Informationen finden Sie in der Dokumentation zur-Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten Google Cloud .
Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Google Cloud Dokumentation zur-Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der in Google Cloud ausgeführt wird.
-
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI.
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Google Cloud Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.
Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Google Cloud Dokumentation zur-Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der in Google Cloud ausgeführt wird.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt mit aktiven Ressourcen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Lesen eines Berichts mit dieser Kurzanleitung benötigen:
- App Optimize-Administrator (
roles/appoptimize.admin) - Betrachter (
roles/viewer) oder eine andere Rolle, diebilling.resourceCosts.getgewährt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Weitere Informationen zu den für die App Optimize API erforderlichen Berechtigungen und Rollen finden Sie unter Zugriffssteuerung mit IAM.
Bericht erstellen
In diesem Beispiel wird ein Bericht über die Gesamtausgaben für die ausgewählte PROJECT_ID erstellt. Im Bericht werden die Kosten nach verwendetem Google Cloud Produkt, z. B. Compute Engine und Cloud Storage, sowie nach der jeweiligen SKU und dem Standort aufgeschlüsselt. Der Bericht umfasst die Daten der letzten drei Tage.
Folgen Sie der Anleitung für Ihre bevorzugte Methode, um die Berichtsressource zu erstellen:
gcloud
Verwenden Sie den Befehl gcloud beta app-optimize reports create, um den Bericht zu erstellen.
gcloud beta app-optimize reports create REPORT_ID \
--project=PROJECT_ID \
--location=global \
--dimensions=location,product_display_name,project,sku \
--metrics=cost \
--report-filter='hour >= now - duration("72h")' \
--scopes=project=projects/PROJECT_ID
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-ID.REPORT_ID: eine eindeutige ID für Ihren neuen Bericht, z. B.my-first-report
Der Befehl wartet, bis der Vorgang zur Berichtserstellung abgeschlossen ist, und gibt dann die erstellte Berichtsressource zurück.
Python
Der folgende Python-Code verwendet AppOptimizeClient.create_report(), um einen Bericht zu erstellen.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
# Create the App Optimize client and prepare a request for a new report
client = appoptimize_v1beta.AppOptimizeClient()
report = appoptimize_v1beta.Report(
dimensions=['location', 'product_display_name', 'project', 'sku'],
metrics=['cost'],
filter='hour >= now - duration("72h")',
scopes=[
appoptimize_v1beta.Scope(project=f"projects/{project_id}"),
],
)
request = appoptimize_v1beta.CreateReportRequest(
parent=f"projects/{project_id}/locations/global",
report=report,
report_id=report_id,
)
# Request the creation of the report and wait until the process is done
operation = client.create_report(request=request)
print("Waiting for report creation operation to complete...")
response = operation.result()
print(response)
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-ID.REPORT_ID: eine eindeutige ID für Ihren neuen Bericht, z. B.my-first-report.
Die Methode operation.result() wartet, bis der Vorgang zur Berichtserstellung abgeschlossen ist.
REST
Senden Sie eine HTTP-POST-Anfrage an den Ressourcenpfad projects.locations.reports der REST API.
Verwenden Sie den folgenden
curl-Befehl, um die Anfrage zu senden:curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")" }' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?report_id=REPORT_ID"Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-ID.REPORT_ID: eine eindeutige ID für Ihren neuen Bericht, z. B.my-first-report
Die API gibt ein Objekt für einen Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO) zurück, das den Prozess der Berichtserstellung darstellt. Hier ist eine Beispielantwort:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }Der
"done": falseStatus gibt an, dass der Bericht noch erstellt wird. Notieren Sie sich dieOPERATION_ID, da Sie sie im nächsten Schritt verwenden.Da die Berichtserstellung einige Zeit dauern kann, müssen Sie den LRO abfragen, bis er angibt, dass der Erstellungsprozess abgeschlossen ist und die Daten des Berichts zum Download bereitstehen.
Wenn Sie den Status des Erstellungsprozesses prüfen möchten, senden Sie eine HTTP-
GET-Anfrage an den Ressourcennamen des Vorgangs:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Prüfen Sie die Antwort. Wenn
"done"den Wertfalsehat, warten Sie 5 bis 15 Sekunden und wiederholen Sie diesen Schritt. Wenn"done"den Werttruehat, ist der Bericht fertig.Das folgende Beispiel zeigt eine Antwort, wenn der Vorgang abgeschlossen ist:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.Report", "name": "projects/PROJECT_ID/locations/global/reports/REPORT_ID", "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "sku" ], "metrics": [ "cost" ], "filter": "hour >= now - duration(\"72h\")", "expireTime": "2026-02-04T22:05:05Z" } }
Berichtsdaten lesen
Folgen Sie der Anleitung für Ihre bevorzugte Methode, um die Berichtsdaten abzurufen:
gcloud
Verwenden Sie den folgenden Befehl gcloud beta app-optimize reports read, um die Daten des Berichts abzurufen:
gcloud beta app-optimize reports read REPORT_ID \
--project=PROJECT_ID \
--location=global
Python
Der folgende Python-Code verwendet AppOptimizeClient.read_report(), um die Daten des Berichts abzurufen.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
name = f"projects/{project_id}/locations/global/reports/{report_id}"
# Create the App Optimize client and read your report's data
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.ReadReportRequest(
name=name,
)
result = client.read_report(request=request)
# Display the report's data
print(result)
REST
Sobald der LRO abgeschlossen ist, verwenden Sie die benutzerdefinierte Methode :read der REST API:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID:read"
Die Antwort der API enthält die Berichtsdatenzeilen und Spaltendefinitionen. Das folgende Beispiel zeigt eine erfolgreiche Antwort:
{
"rows": [
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "25",
"nanos": 750000000
}
],
[
"us-central1",
"Cloud Storage",
"projects/PROJECT_ID",
"9ADA-9ADC-2FBE",
{
"currency_code": "USD",
"units": "5",
"nanos": 100000000
}
],
[
"europe-west1",
"Compute Engine",
"projects/PROJECT_ID",
"6EC2-384A-47D9",
{
"currency_code": "USD",
"units": "18",
"nanos": 500000000
}
],
[
"us-central1",
"Compute Engine",
"projects/PROJECT_ID",
"F61D-4D51-AAFC",
{
"currency_code": "USD",
"units": "12",
"nanos": 200000000
}
]
],
"columns": [
{
"name": "location",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "product_display_name",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "project",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "sku",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "cost",
"type": "RECORD",
"mode": "NULLABLE",
"columns": [
{
"name": "currency_code",
"type": "STRING",
"mode": "NULLABLE"
},
{
"name": "units",
"type": "INT64",
"mode": "NULLABLE"
},
{
"name": "nanos",
"type": "INT64",
"mode": "NULLABLE"
}
]
}
],
"next_page_token": ""
}
Berichte mit vielen Zeilen werden paginiert. Informationen zum Verarbeiten mehrerer Seiten finden Sie unter Daten eines Berichts lesen.
Informationen zu den W0erten im cost Feld finden Sie unter
Kostenmesswerte interpretieren.
Weitere Informationen zu den Daten und ihren Einschränkungen finden Sie unter
Daten verstehen.
Bereinigen
Die App Optimize API löscht Ihren Bericht 24 Stunden nach der Erstellung automatisch. Wenn Sie den Bericht früher löschen möchten, folgen Sie der Anleitung für Ihre bevorzugte Methode:
gcloud
Verwenden Sie den Befehl gcloud beta app-optimize reports delete, um den Bericht zu entfernen.
gcloud beta app-optimize reports delete REPORT_ID \
--project=PROJECT_ID \
--location=global
Python
Der folgende Code verwendet AppOptimizeClient.delete_report(), um den Bericht zu entfernen.
from google.cloud import appoptimize_v1beta
project_id = "PROJECT_ID"
report_id = "REPORT_ID"
name = f"projects/{project_id}/locations/global/reports/{report_id}"
client = appoptimize_v1beta.AppOptimizeClient()
request = appoptimize_v1beta.DeleteReportRequest(name=name)
client.delete_report(request=request)
print(f"Deleted report: {name}")
REST
Senden Sie eine HTTP-DELETE-Anfrage an den Ressourcenendpunkt des Berichts:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID"
Nächste Schritte
- Weitere Informationen zu Berichten.
- Weitere Möglichkeiten zum Verwalten von Berichten:
- Übersicht über die App Optimize API