列出报告

通过列出 Google Cloud 项目中的所有报告配置,有效管理 App Optimize API 报告。这有助于您确定要读取数据或在过期日期之前删除的特定报告(如果不再需要)。

列表操作会返回报告元数据,包括每个报告的资源名称、范围、维度、指标和过期时间。如需下载所请求的费用和使用情况信息,您需要读取报告的数据。

准备工作

gcloud

  • 安装 Google Cloud CLI。

  • 配置 gcloud CLI 以使用您的联合身份。

    如需了解详情,请参阅使用联合身份登录 gcloud CLI。

  • 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  • 初始化 gcloud CLI 后,对其进行更新并安装所需组件:

    gcloud components update
    gcloud components install beta
  • 如需了解如何为生产环境设置身份验证,请参阅 Google Cloud 身份验证文档中的 为在 Google Cloud上运行的代码设置应用默认凭据 。

    Python

    1. 安装 App Optimize API 的 Python 客户端库。
    2. 如需在本地开发环境中使用本页面上的 Python 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。

      1. 安装 Google Cloud CLI。

      2. 配置 gcloud CLI 以使用您的联合身份。

        如需了解详情,请参阅使用联合身份登录 gcloud CLI。

      3. 为您的用户账号创建本地身份验证凭证:

        gcloud auth application-default login

        如果系统返回身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI。

      如需了解详情,请参阅 Google Cloud 身份验证文档中的 为本地开发环境设置 ADC。

      如需了解如何为生产环境设置身份验证,请参阅 Google Cloud 身份验证文档中的 为在 Google Cloud上运行的代码设置应用默认凭据 。

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。

      安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。

    如需了解如何为生产环境设置身份验证,请参阅 Google Cloud 身份验证文档中的 为在 Google Cloud上运行的代码设置应用默认凭据 。

    所需的角色

    如需获得列出项目报告资源所需的权限,请让管理员为您授予项目的 App Optimize Viewer (roles/appoptimize.viewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    列出报告

    如需列出项目中的报告,请按照您偏好的方法对应的说明操作:

    gcloud

    使用 gcloud beta app-optimize reports list 命令列出项目中的报告。

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

    将 PROJECT_ID 替换为拥有您要列出的报告资源的 Google Cloud项目的 ID。

    gcloud 命令会自动处理分页,并返回所有请求的资源。

    Python

    以下 Python 代码使用 AppOptimizeClient.list_reports() 显示项目中的报告列表。

    from google.cloud import appoptimize_v1beta
    
    project_id = "PROJECT_ID"
    
    # Create the App Optimize client and request the project's reports
    client = appoptimize_v1beta.AppOptimizeClient()
    request = appoptimize_v1beta.ListReportsRequest(
        parent=f"projects/{project_id}/locations/global"
    )
    page_result = client.list_reports(request=request)
    
    # Iterate over the list of reports and display each one
    for response in page_result:
        print(response)
    

    将 PROJECT_ID 替换为拥有您要列出的报告资源的 Google Cloud项目的 ID。

    客户端库会自动处理分页,并从迭代器中生成结果。

    REST

    使用以下 curl 命令列出项目的报告:

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

    替换以下内容:

    • PROJECT_ID:拥有您要列出的报告资源的 Google Cloud 项目的 ID。
    • PAGE_SIZE:每页返回的报告数上限。如果省略,API 会使用默认值。服务器返回的报告数量可能少于请求的数量。

    如果请求成功,API 会返回一个包含报告资源列表的 JSON 响应。以下是成功调用响应的示例:

    {
      "reports": [
        {
          "name": "projects/PROJECT_ID/locations/global/reports/my-first-report",
          "dimensions": [
            "location",
            "product_display_name",
            "project",
            "sku"
          ],
          "scopes": [
            {
              "project": "projects/PROJECT_ID"
            }
          ],
          "filter": "hour \u003e= now - duration(\"168h\")",
          "expireTime": "2026-02-05T18:30:39.907639266Z",
          "metrics": [
            "cost"
          ]
        },
        {
          "name": "projects/PROJECT_ID/locations/global/reports/my-second-report",
          "dimensions": [
            "location",
            "product_display_name",
            "project",
            "resource",
            "resource_type"
          ],
          "scopes": [
            {
              "project": "projects/PROJECT_ID"
            }
          ],
          "filter": "hour \u003e= now - duration(\"168h\")",
          "expireTime": "2026-02-05T18:50:25.273833857Z",
          "metrics": [
            "cost",
            "cpu_mean_utilization"
          ]
        }
      ]
    }
    

    reports 数组包含每个报告的元数据。如果请求失败,请查看 API 返回的错误消息。

    如果响应包含 nextPageToken 字符串,则表示还有更多报告要检索。

    检查响应中是否有 nextPageToken 字段。如果令牌存在,请运行以下 curl 命令来检索下一页,包括 pageToken 查询参数。您可以继续使用 pageSize 参数。

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?pageToken=NEXT_PAGE_TOKEN&pageSize=PAGE_SIZE"
    

    替换以下内容:

    • NEXT_PAGE_TOKEN:在上一个响应中收到的 nextPageToken 的值。
    • PAGE_SIZE:您希望此请求的页面大小。

    重复此过程,直到响应不再包含 nextPageToken,这表示您已检索到所有报告。

    后续步骤