Ler os dados de um relatório

Depois que a App Optimize API cria um relatório, você busca os dados de custo e utilização dele. Essa operação faz o download dessas informações como colunas e linhas, estruturadas de acordo com as dimensões e métricas especificadas ao solicitar o relatório.

Essa solicitação de API é diferente de receber os metadados de um relatório, que só retorna as configurações dele.

Antes de começar

gcloud

No Google Cloud console, ative o Cloud Shell.

Ativar o Cloud Shell

Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código em execução em Google Cloud na documentação de autenticação. Google Cloud

Python

  1. Instale a biblioteca de cliente Python para a App Optimize API.
  2. Para usar os exemplos de Python desta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.

    1. Instale a Google Cloud CLI.

    2. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    3. Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

      gcloud auth application-default login

      Não é necessário fazer isso se você estiver usando o Cloud Shell.

      Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

    Saiba mais em Configurar o ADC para um ambiente de desenvolvimento local na documentação de Google Cloud autenticação.

    Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código em execução em Google Cloud na documentação de autenticação. Google Cloud

REST

Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

    Instale a Google Cloud CLI.

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Para informações sobre como configurar a autenticação em um ambiente de produção, consulte Configurar o Application Default Credentials para código em execução em Google Cloud na documentação de autenticação. Google Cloud

Funções exigidas

Para receber as permissões necessárias para ler os dados de um relatório, peça ao administrador para conceder a você o papel do IAM de Leitor da App Optimize (roles/appoptimize.viewer) no projeto que possui o recurso de relatório. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.

Ler dados do relatório

Para ler dados de um relatório concluído, siga as instruções do método preferido:

gcloud

Use o comando gcloud beta app-optimize reports read para buscar os dados de um relatório.

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

Substitua:

  • PROJECT_ID: o ID do Google Cloud projeto que possui o recurso de relatório que você quer ler.
  • REPORT_ID: o ID do relatório a ser lido. Esse ID foi especificado quando o relatório foi criado e pode ser obtido listando os relatórios.

O comando gcloud processa a paginação automaticamente, retornando todos os recursos solicitados.

Para entender os valores no campo cost, consulte Interpretar métricas de custo. Para mais informações sobre os dados e entender as limitações deles, consulte Entender os dados.

Python

O código Python a seguir usa AppOptimizeClient.read_report() para ler os dados de um relatório.

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)

Substitua:

  • PROJECT_ID: o ID do Google Cloud projeto que possui o recurso de relatório que você quer ler.
  • REPORT_ID: o ID do relatório a ser lido. Esse ID foi especificado quando o relatório foi criado e pode ser obtido listando os relatórios.

A biblioteca de cliente processa a paginação automaticamente, gerando resultados do iterador.

Para entender os valores no campo cost, consulte Interpretar métricas de custo. Para mais informações sobre os dados e entender as limitações deles, consulte Entender os dados.

REST

Envie uma solicitação HTTP POST para o método personalizado :read da API REST.

  1. Use o comando curl a seguir para enviar essa solicitação e ler a primeira página de dados do relatório:

    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"
    

    Substitua:

    • PROJECT_ID: o ID do Google Cloud projeto que possui o recurso de relatório que você quer ler.
    • REPORT_ID: o ID do relatório a ser lido. Esse ID foi especificado quando o relatório foi criado e pode ser obtido listando os relatórios.
    • PAGE_SIZE: o número máximo de linhas a serem retornadas por página. O servidor retorna no máximo 1.000 linhas por página, mesmo que você especifique um valor maior. As respostas também estão sujeitas a um limite de tamanho de 10 MB. Portanto, menos linhas podem ser retornadas para permanecer dentro desse limite. Se pageSize for omitido, um tamanho padrão será usado.
  2. Se a solicitação for bem-sucedida, a API retornará uma resposta JSON contendo o esquema e as linhas do relatório. Confira um exemplo de resposta bem-sucedida:

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

    Para entender os valores no campo cost, consulte Interpretar métricas de custo. Para mais informações sobre os dados e entender as limitações deles, consulte Entender os dados.

  3. Se a resposta incluir um campo nextPageToken, o relatório vai conter linhas adicionais. Para recuperar a próxima página de resultados, faça outra solicitação POST que inclua esse token no campo pageToken do corpo 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"
    

    Substitua:

    • NEXT_PAGE_TOKEN: o valor de nextPageToken recebido na resposta anterior.
    • PAGE_SIZE: o número máximo de linhas a serem retornadas por página. Embora seja possível alterar esse valor entre as solicitações de página, os limites do lado do servidor ainda se aplicam.

    Repita esse processo até que a resposta não contenha mais um nextPageToken, indicando que você recuperou todos os dados do relatório.

A seguir