Bericht erstellen und lesen
Hier erfahren Sie, wie Sie einen App Optimize API-Bericht zu Ihren Google CloudAusgaben erstellen, die Berichterstellung überwachen und die resultierenden Daten lesen, wenn sie für Sie verfügbar sind. In dieser Kurzanleitung können Sie die REST API oder die Python-Clientbibliothek verwenden.
Hinweis
Für die Beispiele in diesem Leitfaden ist ein Google Cloud Projekt mit aktiven Ressourcen erforderlich, die analysiert werden sollen. Für die App Optimize API sind Abrechnungs- und Nutzungsdaten erforderlich, um aussagekräftige Ergebnisse zu liefern. Berichte, die für neue oder leere Projekte ausgeführt werden, sind leer.
In diesem Leitfaden stellt das als
PROJECT_IDidentifizierte Projekt den Datenbereich bereit und hostet die Berichtsressource.Mit der App Optimize API können Berichte in einem Projekt erstellt werden, in denen Daten aus einem anderen Projekt oder aus Anwendungen in Einzelprojekt- oder Ordnerebenengrenzen 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 Monitoring und Abrechnung für alle zugehörigen Projekte der Anwendung.
Prüfen Sie, ob die App Optimize API für das Projekt aktiviert ist, mit dem Sie die Berichtsressource erstellen und verwalten.
-
Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit 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 geplante 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 Dokumentation zur Google Cloud -Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der auf Google Cloudausgefü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, müssen Sie das nicht tun.
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 Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.
Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der auf Google Cloudausgefü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 Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Standardanmeldedaten für Anwendungen für Code einrichten, der auf Google Cloudausgefü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 zu den Gesamtausgaben in der ausgewählten PROJECT_ID erstellt. Im Bericht werden die Kosten nach jedem verwendetenGoogle Cloud -Produkt aufgeschlüsselt, z. B. Compute Engine und Cloud Storage, sowie nach der jeweiligen SKU und dem jeweiligen Standort. Der Bericht umfasst die Daten der letzten drei Tage.
So erstellen Sie die Berichtsressource:
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: Projekt-ID in Google Cloud .REPORT_ID: Eine eindeutige ID für Ihren neuen Bericht, z. B.my-first-report
Der Befehl wartet, bis der Vorgang zum Erstellen des Berichts abgeschlossen ist, und gibt dann die erstellte Berichtsressource zurück.
Python
Im folgenden Python-Code wird AppOptimizeClient.create_report() verwendet, 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: Projekt-ID in Google Cloud .REPORT_ID: Eine eindeutige ID für Ihren neuen Bericht, z. B.my-first-report.
Die Methode operation.result() wartet, bis der Vorgang zum Erstellen des Berichts 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: Projekt-ID in Google Cloud .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 (LRO) zurück, das den Prozess der Berichterstellung 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 Status
"done": falsegibt an, dass der Bericht noch generiert wird. Notieren Sie sich dieOPERATION_ID, da Sie sie im nächsten Schritt benötigen.Da die Berichterstellung einige Zeit in Anspruch nehmen kann, müssen Sie den LRO abfragen, bis er angibt, dass der Generierungsprozess abgeschlossen ist und die Daten des Berichts zum Herunterladen bereit sind.
Wenn Sie den Status des Generierungsvorgangs 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"Sehen Sie sich die Antwort an. Wenn
"done"falseist, warte 5 bis 15 Sekunden und wiederhole diesen Schritt. Wenn"done"gleichtrueist, 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
So rufen Sie die Berichtsdaten ab:
gcloud
Verwenden Sie den folgenden gcloud beta app-optimize reports read-Befehl, um die Daten des Berichts abzurufen.
gcloud beta app-optimize reports read REPORT_ID \
--project=PROJECT_ID \
--location=global
Python
Im folgenden Python-Code wird AppOptimizeClient.read_report() verwendet, 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
Wenn der Vorgang mit langer Ausführungszeit 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. Hier ist ein Beispiel für 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 Berichtsdaten lesen.
Informationen zum Interpretieren der Werte im Feld cost 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 automatisch 24 Stunden nach der Erstellung. 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
Im folgenden Code wird AppOptimizeClient.delete_report() verwendet, 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:
- Weitere Informationen finden Sie in der Übersicht über die App Optimize API.