列出报告

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

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

准备工作

gcloud

在 Google Cloud 控制台中,激活 Cloud Shell。

激活 Cloud Shell

Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

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

Python

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

    1. 安装 Google Cloud CLI。

    2. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    3. 如果您使用的是本地 shell,请为您的用户账号创建本地身份验证凭证:

      gcloud auth application-default login

      如果您使用的是 Cloud Shell,则无需执行此操作。

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

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

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

REST

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

    安装 Google Cloud CLI。

    如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 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,这表示您已检索到所有报告。

后续步骤