Creare e leggere un report

Scopri come creare un report dell'API App Optimize delle tue Google Cloud spese, monitorare la generazione del report e leggere i dati risultanti quando sono pronti per te. In questa guida rapida utilizzerai l'API REST.

Prima di iniziare

  1. Gli esempi in questa guida richiedono un Google Cloud progetto con risorse attive da analizzare. L'API App Optimize ha bisogno di dati di fatturazione e utilizzo per produrre risultati significativi; i report eseguiti su progetti nuovi o vuoti saranno vuoti.

    Questo progetto viene scelto da te ed è identificato da PROJECT_ID. Per semplicità, in questa guida il progetto ospiterà la risorsa del report e fornirà l'ambito dei dati.

    L'API App Optimize supporta la creazione di report in un progetto che analizza i dati di un progetto di origine diverso o di applicazioni con limiti a livello di progetto singolo o cartella. Se stai generando un report su un'applicazione App Hub, che può essere composta da più progetti, devi disporre delle autorizzazioni di monitoraggio e fatturazione richieste su tutti i progetti associati dell'applicazione per creare il report.

  2. Assicurati che l'API App Optimize sia abilitata per il progetto che utilizzerai per creare e gestire la risorsa del report. Negli esempi in questa documentazione, questo è il progetto identificato da PROJECT_ID.
  3. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  4. Installa Google Cloud CLI.

  5. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  6. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  7. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  8. Installa Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e leggere un report utilizzando questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto con risorse attive:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più sui ruoli e sulle autorizzazioni richieste per l'API App Optimize, consulta Controllo dell'accesso con IAM.

crea un report

Questo esempio crea un report della spesa totale all'interno dell' sceltoPROJECT_ID. Il report suddivide i costi per ogni Google Cloud prodotto utilizzato, come Compute Engine e Cloud Storage, e per lo SKU e la località specifici. Il report copre gli ultimi tre giorni di dati.

Per creare la risorsa del report, invia una richiesta HTTP POST al percorso della risorsa projects.locations.reports dell'API REST.

Segui questi passaggi per creare il report.

  1. Utilizza il seguente curl comando per inviare la richiesta:

    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"
    

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo Google Cloud ID progetto.
    • REPORT_ID: un ID univoco per il nuovo report, ad esempio my-first-report

    L'API restituisce un oggetto Operazione a lunga esecuzione (LRO), che rappresenta il processo di generazione del report. Ecco un esempio di risposta:

    {
      "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata"
      },
      "done": false
    }
    

    Lo stato "done": false indica che il report è ancora in fase di generazione. Prendi nota di OPERATION_ID perché lo utilizzerai nel passaggio successivo.

  2. Poiché la generazione dei report può richiedere tempo, devi eseguire il polling dell'LRO finché non indica che il processo di generazione è completato e i dati del report sono pronti per il download.

    Per controllare lo stato del processo di generazione, invia una richiesta HTTP GET al nome della risorsa dell'operazione:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"
    

    Esamina la risposta. Se "done" è false, attendi da 5 a 15 secondi e ripeti questo passaggio. Se "done" è true, il report è pronto.

    Di seguito è riportato un esempio di risposta al termine dell'operazione:

    {
      "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"
      }
    }
    

Leggi i dati del report

Per recuperare i dati del report, utilizza il metodo personalizzato :read al termine dell'LRO:

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"

La risposta contiene le righe di dati del report e le definizioni delle colonne. Di seguito è riportato un esempio di risposta corretta:

{
  "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": ""
}

I report con molte righe sono impaginati. Per gestire più pagine, consulta Leggi i dati di un report.

Per comprendere i valori nel campo cost, consulta Interpretare le metriche dei costi. Per saperne di più sui dati e comprenderne i limiti, consulta Informazioni sui dati.

Libera spazio

L'API App Optimize elimina automaticamente il report 24 ore dopo la sua creazione. Per eliminare il report prima, invia una richiesta HTTP DELETE all'endpoint della risorsa del report:

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports/REPORT_ID"

Passaggi successivi