보고서 데이터 읽기

App Optimize API가 보고서를 만든 후 보고서의 비용 및 사용률 데이터를 가져옵니다. 이 작업은 보고서를 요청할 때 지정한 측정기준 및 측정항목에 따라 구조화된 이 정보를 열과 행으로 다운로드합니다.

이 API 요청은 보고서의 구성 설정만 반환하는 보고서의 메타데이터 가져오기와는 다릅니다.

시작하기 전에

gcloud

콘솔에서 Cloud Shell을 활성화합니다. Google Cloud

Cloud Shell 활성화

콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Google Cloud Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

프로덕션 환경의 인증 설정에 대한 자세한 내용은 인증 문서의에서 실행되는 코드의 애플리케이션 기본 사용자 인증 정보 설정을 참고하세요. Google Cloud Google Cloud

Python

  1. App Optimize API용 Python 클라이언트 라이브러리 를 설치합니다.
  2. 로컬 개발 환경에서 이 페이지의 Python 샘플을 사용하려면 gcloud CLI를 설치하고 초기화한 후 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정합니다.

    1. Google Cloud CLI를 설치합니다.

    2. 외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

    3. 로컬 셸을 사용하는 경우 사용자 계정에 대한 로컬 인증 사용자 인증 정보를 만듭니다. 사용자 계정에 대한 로컬 인증 사용자 인증 정보 만들기:

      gcloud auth application-default login

      Cloud Shell을 사용하는 경우 이 작업을 수행할 필요는 없습니다.

      인증 오류가 반환되고 외부 ID 공급업체(IdP)를 사용하는 경우 제휴 ID로 gcloud CLI에 로그인했는지 확인합니다.

    자세한 내용은 인증 문서의 로컬 개발 환경의 ADC 설정을 참고하세요. Google Cloud

    프로덕션 환경의 인증 설정에 대한 자세한 내용은 인증 문서의에서 실행되는 코드의 애플리케이션 기본 사용자 인증 정보 설정을 참고하세요. Google Cloud Google Cloud

REST

로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

    Google Cloud CLI를 설치합니다.

    외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

자세한 내용은 인증 문서 의 REST 사용을 위한 인증을 참고하세요. Google Cloud

프로덕션 환경의 인증 설정에 대한 자세한 내용은 인증 문서의에서 실행되는 코드의 애플리케이션 기본 사용자 인증 정보 설정을 참고하세요. Google Cloud Google Cloud

필요한 역할

보고서의 데이터를 읽는 데 필요한 권한을 얻으려면 관리자에게 보고서 리소스를 소유한 프로젝트에 대한 App Optimize 뷰어 (roles/appoptimize.viewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

보고서 데이터 읽기

완료된 보고서에서 데이터를 읽으려면 선호하는 방법에 대한 안내를 따르세요.

gcloud

gcloud beta app-optimize reports read 명령어를 사용하여 보고서의 데이터를 가져옵니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 읽으려는 보고서 리소스를 소유한 프로젝트의 ID Google Cloud
  • REPORT_ID: 읽을 보고서의 ID 이 ID는 보고서가 생성될 때 지정되었으며 보고서를 나열하여 가져올 수 있습니다.

gcloud 명령어는 페이지 나누기를 자동으로 처리하여 요청된 모든 리소스를 반환합니다.

cost 필드의 값을 이해하려면 비용 측정항목 해석을 참고하세요. 데이터에 대한 자세한 내용과 제한사항을 이해하려면 데이터 이해를 참고하세요.

Python

다음 Python 코드는 AppOptimizeClient.read_report()를 사용하여 보고서의 데이터를 읽습니다.

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)

다음을 바꿉니다.

  • PROJECT_ID: 읽으려는 보고서 리소스를 소유한 프로젝트의 ID Google Cloud
  • REPORT_ID: 읽을 보고서의 ID 이 ID는 보고서가 생성될 때 지정되었으며 보고서를 나열하여 가져올 수 있습니다.

클라이언트 라이브러리는 페이지 나누기를 자동으로 처리하여 반복자에서 결과를 생성합니다.

cost 필드의 값을 이해하려면 비용 측정항목 해석을 참고하세요. 데이터에 대한 자세한 내용과 제한사항을 이해하려면 데이터 이해를 참고하세요.

REST

HTTP POST 요청을 REST API의 :read 커스텀 메서드로 보냅니다.

  1. 다음 curl 명령어를 사용하여 보고서 데이터의 첫 번째 페이지를 읽는 요청 을 보냅니다.

    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"
    

    다음을 바꿉니다.

    • PROJECT_ID: 읽으려는 보고서 리소스를 소유한 프로젝트의 ID Google Cloud
    • REPORT_ID: 읽을 보고서의 ID 이 ID는 보고서가 생성될 때 지정되었으며 보고서를 나열하여 가져올 수 있습니다.
    • PAGE_SIZE: 페이지당 반환할 최대 행 수 더 큰 값을 지정하더라도 서버는 페이지당 최대 1,000개의 행을 반환합니다. 응답에는 10MB 크기 제한도 적용되므로 이 제한 내에 유지하기 위해 더 적은 행이 반환될 수 있습니다. pageSize가 생략되면 기본 크기가 사용됩니다.
  2. 요청이 성공하면 API는 보고서 스키마와 행이 포함된 JSON 응답을 반환합니다. 다음은 성공적인 응답의 예입니다.

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

    cost 필드의 값을 이해하려면 비용 측정항목 해석을 참고하세요. 데이터에 대한 자세한 내용과 제한사항을 이해하려면 데이터 이해를 참고하세요.

  3. 응답에 nextPageToken 필드가 포함되어 있으면 보고서에 추가 행이 포함됩니다. 결과의 다음 페이지를 검색하려면 JSON 본문의 pageToken 필드에 이 토큰이 포함된 다른 POST 요청을 합니다.

    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"
    

    다음을 바꿉니다.

    • NEXT_PAGE_TOKEN: 이전 응답에서 수신된 nextPageToken의 값
    • PAGE_SIZE: 페이지당 반환할 최대 행 수 페이지 요청 간에 이 값을 변경할 수 있지만 서버 측 제한은 계속 적용됩니다.

    응답에 더 이상 nextPageToken이 포함되지 않을 때까지 이 프로세스를 반복합니다. 이는 모든 보고서 데이터를 검색했음을 나타냅니다.

다음 단계