创建和管理 Anywhere Cache 缓存

本页介绍如何创建和管理 Anywhere Cache 缓存实例

如需了解如何使用和管理从 Anywhere Cache 异步缓存操作发起的长时间运行的操作,请参阅使用长时间运行的操作

在使用 Anywhere Cache 之前,请先查看局限和限制

准备工作

如需获得创建和管理 Anywhere Cache 缓存所需的权限,请让您的管理员向您授予与缓存创建关联的存储桶的 Storage Admin (roles/storage.admin) IAM 角色。

此预定义角色包含创建和管理 Anywhere Cache 缓存所需的权限。如需查看所需的确切权限,请展开所需权限部分:

您需要具备以下权限才能创建和管理 Anywhere Cache 缓存:

  • storage.anywhereCaches.disable(用于停用缓存)
  • storage.anywhereCaches.get(用于获取缓存)
  • storage.anywhereCaches.create(用于创建缓存)
  • storage.anywhereCaches.list(用于列出缓存)
  • storage.anywhereCaches.pause(用于暂停缓存)
  • storage.anywhereCaches.resume(用于恢复缓存)
  • storage.anywhereCaches.update(用于更新缓存)

您还可以通过自定义角色获得这些权限。

如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用

为了管理通过 Anywhere Cache 方法启动的长时间运行的操作,您可能还需要其他角色和权限。如需了解详情,请参阅长时间运行的操作所需的角色

创建缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击要缓存数据的存储桶的名称。

  3. 存储桶详情页面上,点击配置标签页。

  4. Anywhere Cache 部分中,点击配置缓存

    此时会显示存储桶的修改 <your_bucket_name> 的配置页面。

  5. 缓存区域部分中,点击包含您要创建缓存的可用区的区域。

  6. 缓存可用区部分中,选择要创建缓存的可用区。对于您选择的每个可用区,请指定缓存的存留时间注入选项。

  7. 点击 Save configuration(保存配置)。

  8. 在显示的对话框中,点击确认

    存储桶详情页面中的操作标签页随即打开,其中显示了创建缓存操作的作业状态。

您还可以直接从存储桶列表页面查看存储桶缓存的状态。为此,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 点击查看列图标 (),选择缓存,然后点击确定

使用 gcloud storage buckets anywhere-caches create 命令:

gcloud storage buckets anywhere-caches create gs://BUCKET_NAME ZONE

您需要进行如下替换:

  • BUCKET_NAME 替换为要缓存数据的存储桶的名称。例如 my-bucket

  • ZONE 替换为缓存将运行的可用区。例如 us-east1-b

    如需一次创建多个缓存,您可以指定多个可用区。例如,us-east1-b us-east1-c us-east1-d

设置以下可选标志,以便更好地控制缓存的创建:

  • --ttl:指定缓存中数据的存留时间 (TTL),以秒为单位。如果未指定,则默认为 86400s(24 小时)。

  • --admission-policy:指定在何时将数据注入到缓存中。值可以是 ADMIT_ON_FIRST_MISSADMIT_ON_SECOND_MISS。如果未指定,则默认为 ADMIT_ON_FIRST_MISS

如果成功,该命令会返回与 AnywhereCache Create 操作关联的长时间运行的操作的 ID。您可以获取长时间运行的操作的详细信息,也可以取消长时间运行的操作,以在 AnywhereCaches Create 操作完成之前停止该操作。

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 创建一个包含以下信息的 JSON 文件:

    {
       "zone": "ZONE",
       "ttl": "TIME_TO_LIVE",
       "admissionPolicy": "ADMISSION_POLICY"
    }

    您需要进行如下替换:

    • ZONE 替换为缓存将运行的可用区。例如 us-east1-b

    • TIME_TO_LIVE 替换为缓存中数据的存留时间 (TTL)。该值介于 1 小时到 7 天之间,以秒为单位指定。如果未指定,则默认为 86400s(24 小时)。

    • ADMISSION_POLICY 替换为缓存的准许政策,用于指定何时注入数据。值可以是 admit-on-first-missadmit-on-second-miss。如果未指定,则默认为 admit-on-first-miss

  3. 使用 cURL,通过创建缓存请求调用 JSON API

    curl -X POST --data-binary @JSON_FILE_NAME \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches"

    您需要进行如下替换:

    • JSON_FILE_NAME 替换为您在第 2 步中创建的 JSON 文件的名称。

    • BUCKET_NAME 替换为要缓存数据的存储桶的名称。例如 my-bucket

如果成功,此操作会返回一个 google.longrunning.Operation。您可以获取长时间运行的操作的详细信息,也可以取消长时间运行的操作,以在 AnywhereCaches Create 操作完成之前停止该操作。

查看缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要查看的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击配置标签页。

  4. Anywhere Cache 部分,点击缓存字段旁边的 修改

  5. 在随即显示的修改配置页面中,选择一个区域以查看该区域的可用区内的所有缓存。

    然后,您可以在缓存可用区窗格中查看每个可用缓存的详细信息。

使用 gcloud storage buckets anywhere-caches describe 命令:

gcloud storage buckets anywhere-caches describe ID

您需要进行如下替换:

  • ID 替换为缓存实例的标识符,其格式为 BUCKET_NAME/ANYWHERE_CACHE_ID。例如 my-bucket/us-east1-b

使用可选的 raw 标志输出原始 API 响应,而不是标准化 API 响应。

如果成功,此命令会返回一个 AnywhereCache 资源

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL,通过获取缓存请求调用 JSON API

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/ANYWHERE_CACHE_ID"

    您需要进行如下替换:

    • BUCKET_NAME 替换为与要检索的缓存关联的存储桶的名称。例如 my-bucket

    • ANYWHERE_CACHE_ID 替换为缓存所在的可用区。例如 us-east1-b

如果成功,此操作会返回一个 AnywhereCache 资源

列出缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要查看的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击配置标签页。

  4. Anywhere Cache 部分,点击缓存字段旁边的 修改

  5. 在随即显示的修改配置页面中,选择一个区域以查看该区域的可用区内的所有缓存。

    该区域内可用区的所有可用缓存都显示在缓存可用区窗格中。

使用 gcloud storage buckets anywhere-caches list 命令:

gcloud storage buckets anywhere-caches list gs://BUCKET_NAME

您需要进行如下替换:

  • BUCKET_NAME 替换为与您要列出的缓存关联的存储桶的名称。例如 my-bucket

如果成功,此命令会返回 AnywhereCache 资源列表。

您可以选择使用 --raw 标志来返回原始 API 响应,而不是标准化响应。如需详细了解如何控制列出行为(例如分页显示结果),请参阅 gcloud storage ls 文档

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL,通过列出缓存请求调用 JSON API

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches"

    您需要进行如下替换:

    • BUCKET_NAME 替换为与要检索的缓存关联的存储桶的名称。例如 my-bucket

    列出多个缓存时,您可以将结果分页

如果成功,此操作会返回 AnywhereCache 资源列表。如需详细了解此响应的结构,请参阅 AnywhereCaches List 文档中的响应

更新缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要更新的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击可观测性标签页,然后点击导航菜单中的缓存

  4. 点击修改配置

  5. 在显示的修改配置页面中,更新缓存的属性,然后点击保存

使用 gcloud storage buckets anywhere-caches update 命令:

gcloud storage buckets anywhere-caches update ID

您需要进行如下替换:

  • ID 替换为缓存实例的标识符,其格式为 BUCKET_NAME/ANYWHERE_CACHE_ID。例如 my-bucket/us-east1-b

    如需一次更新多个缓存,您可以指定多个标识符。例如 my-bucket/us-east1-b my-bucket/us-east1-c

使用以下标志更新缓存的配置。如果未指定标志,则值保持不变。

  • --ttl:指定缓存中数据的存留时间 (TTL),以秒为单位。

  • --admission-policy:指定在何时将数据注入到缓存中。值可以是 ADMIT_ON_FIRST_MISSADMIT_ON_SECOND_MISS

如果成功,该命令会返回与 AnywhereCache Update 操作关联的原始长时间运行的操作的 ID。您可以获取长时间运行的操作的详细信息

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 创建一个 JSON 文件,其中包含您要更新的缓存属性更改。

    {
       "ttl": "TIME_TO_LIVE",
       "admissionPolicy": "ADMISSION_POLICY"
    }

    您需要进行如下替换:

    • TIME_TO_LIVE 替换为缓存中数据的 TTL。该值介于 1 小时到 7 天之间,以秒为单位指定。如果未指定,则会使用当前值。

    • ADMISSION_POLICY 替换为缓存的准许政策,用于指定何时注入数据。值可以是 admit-on-first-missadmit-on-second-miss。如果未指定,则会使用当前值。

    以下示例将缓存的 TTL 更新为 2 天,并将其准许政策更新为在第二次未命中时注入数据:

    {
       "ttl": "172800s",
       "admissionPolicy": "admit-on-second-miss"
    }
  3. 如需应用新属性,请使用 cURL,通过更新缓存请求调用 JSON API

    curl -X PATCH --data-binary @JSON_FILE_NAME \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/ANYWHERE_CACHE_ID"

    您需要进行如下替换:

    • JSON_FILE_NAME 替换为您在第 2 步中创建的 JSON 文件的名称。

    • BUCKET_NAME 替换为与要更新的缓存关联的存储桶的名称。例如 my-bucket

    • ANYWHERE_CACHE_ID 替换为缓存的标识符。例如 us-east1-b

如果成功,此操作会返回一个 google.longrunning.Operation。您可以获取长时间运行的操作的详细信息

暂停缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要暂停的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击可观测性标签页,然后点击导航菜单中的缓存

  4. 点击暂停/恢复缓存

  5. 在随即显示的窗格中,点击暂停缓存切换开关。

  6. 点击暂停/恢复

  7. 在显示的对话框中,点击确认

使用 gcloud storage buckets anywhere-caches pause 命令:

gcloud storage buckets anywhere-caches pause ID

您需要进行如下替换:

  • ID 替换为缓存实例的标识符,其格式为 BUCKET_NAME/ANYWHERE_CACHE_ID。例如 my-bucket/us-east1-b

    如需一次暂停多个缓存,您可以指定多个标识符。例如 my-bucket/us-east1-b my-bucket/us-east1-c

如果成功,此命令会返回成功消息。

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL,通过暂停缓存请求调用 JSON API

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/ANYWHERE_CACHE_ID/pause"

    您需要进行如下替换:

    • BUCKET_NAME 替换为与要暂停的缓存关联的存储桶的名称。例如 my-bucket

    • ANYWHERE_CACHE_ID 替换为缓存的标识符。例如 us-east1-b

如果成功,该操作会返回一个格式化的 AnywhereCache 资源

恢复缓存

如需恢复已暂停的缓存,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要恢复的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击可观测性标签页,然后点击导航菜单中的缓存

  4. 点击暂停/恢复缓存

  5. 在随即显示的窗格中,点击暂停缓存切换开关。

  6. 点击暂停/恢复

  7. 在显示的对话框中,点击确认

如需恢复已停用的缓存,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要恢复的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击可观测性标签页,然后点击导航菜单中的缓存

  4. 点击停用/恢复缓存

  5. 在随即显示的窗格中,点击停用缓存切换开关。

  6. 点击停用/恢复

  7. 在显示的对话框中,点击确认

使用 gcloud storage buckets anywhere-caches resume 命令:

gcloud storage buckets anywhere-caches resume ID

您需要进行如下替换:

  • ID 替换为缓存实例的标识符,其格式为 BUCKET_NAME/ANYWHERE_CACHE_ID。例如 my-bucket/us-east1-b

    如需一次恢复多个缓存,您可以指定多个标识符。例如 my-bucket/us-east1-b my-bucket/us-east1-c

如果成功,该命令会返回一个格式化的 AnywhereCache 资源

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL,通过恢复缓存请求调用 JSON API

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/ANYWHERE_CACHE_ID/resume"

    您需要进行如下替换:

    • BUCKET_NAME 替换为与要恢复的缓存关联的存储桶的名称。例如 my-bucket

    • ANYWHERE_CACHE_ID 替换为缓存的标识符。例如 us-east1-b

如果成功,该操作会返回一个格式化的 AnywhereCache 资源

停用缓存

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击与您要停用的缓存关联的存储桶的名称。

  3. 存储桶详情页面上,点击可观测性标签页,然后点击导航菜单中的缓存

  4. 点击停用/恢复缓存

  5. 在随即显示的窗格中,点击停用缓存切换开关。

  6. 点击停用/恢复

  7. 在显示的对话框中,点击确认

使用 gcloud storage buckets anywhere-caches disable 命令:

gcloud storage buckets anywhere-caches disable ID

您需要进行如下替换:

  • ID 替换为缓存实例的标识符,其格式为 BUCKET_NAME/ANYWHERE_CACHE_ID。例如 my-bucket/us-east1-b

    如需一次停用多个缓存,您可以指定多个标识符。例如 my-bucket/us-east1-b my-bucket/us-east1-c

如果成功,该命令会返回一个格式化的 AnywhereCache 资源

JSON API
  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。

  2. 使用 cURL,通过停用缓存请求调用 JSON API

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/anywhereCaches/ANYWHERE_CACHE_ID/disable"

    您需要进行如下替换:

    • BUCKET_NAME 替换为与要停用的缓存关联的存储桶的名称。例如 my-bucket

    • ANYWHERE_CACHE_ID 替换为缓存的标识符。例如 us-east1-b

如果成功,该命令会返回一个格式化的 AnywhereCache 资源

监控缓存性能

Google Cloud 控制台的 Cloud Storage 部分提供了监控图表,可让您使用指标跟踪缓存的性能。您还可以使用 Cloud Monitoring 查看这些监控图表。

可用图表

图表 资源层次结构级层 说明
字节逐出速率 存储桶 从缓存中逐出字节的速率,每小时采样一次。这些数据的刷新间隔时间小于 1 小时,以便系统有时间对数据进行后处理。
字节逐出速率 项目 从存储桶的所有缓存中逐出字节的速率,每小时采样一次。这些数据的刷新间隔时间小于 1 小时,以便系统有时间对数据进行后处理。
缓存中的字节数 存储桶 缓存中的字节速率,每小时采样一次。这些数据的刷新间隔时间小于 1 小时,以便系统有时间对数据进行后处理。
缓存中的字节数 项目 存储桶所有缓存中的字节数,每小时采样一次。这些数据的刷新间隔时间小于 1 小时,以便系统有时间对数据进行后处理。
缓存吞吐量优势 项目 该区域的数据传输带宽配额、配额用量以及缓存提供的额外吞吐量。缓存提供的额外吞吐量不会计入配额,因此,使用缓存可以让项目超出配额允许的吞吐量。
操作命中率 存储桶 从缓存传送请求数据的缓存操作次数占缓存合格操作总次数的百分比,每 60 秒采样一次。如果读取操作完全从缓存中返回,则计为命中。如果读取操作未从缓存返回或仅从缓存返回了部分数据,则计为未命中。
操作命中率 项目 从存储桶的所有缓存传送请求数据的缓存操作次数占缓存合格操作总次数的百分比,每 60 秒采样一次。如果读取操作完全从缓存中返回,则计为命中。如果读取操作未从缓存返回或仅从缓存返回了部分数据,则计为未命中。
字节命中率 存储桶 从缓存中传送的字节数占缓存合格字节总数的百分比,每 60 秒采样一次。
字节命中率 项目 从存储桶的所有缓存中传送的字节数占缓存合格字节总数的百分比,每 60 秒采样一次。
原始字节注入速率 存储桶 原始字节注入各缓存的速率,每 60 秒采样一次。系统使用所有已注入的字节(包括不计费的字节)来计算此指标的值。此指标实时报告。
原始字节注入速率 项目 原始字节注入存储桶所有缓存的速率,每 60 秒采样一次。系统使用所有已注入的字节(包括不计费的字节)来计算此指标的值。此指标实时报告。
吞吐量 - 缓存命中 存储桶 从缓存中传送的吞吐量,每 60 秒采样一次。
吞吐量 - 缓存命中 项目 从存储桶所有缓存中传送的吞吐量,每 60 秒采样一次。
吞吐量 - 缓存未命中 存储桶 未从缓存中传送的吞吐量,每 60 秒采样一次。
吞吐量 - 缓存未命中 项目 未从存储桶的任何缓存中传送的吞吐量,每 60 秒采样一次。

访问图表

监控图表可以捕获项目中各个存储桶或所有存储桶的数据。图表捕获的资源层次结构级层决定了您可以从哪里访问图表。

访问存储桶级图表

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 在存储桶列表中,点击您要查看监控图表的存储桶的名称。

  3. 存储桶详情页面中,点击可观测性标签页。

  4. 在导航菜单中,选择 Anywhere Cache

    此时会显示监控图表。

访问项目级图表

  1. 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. Cloud Storage 导航窗格中,点击监控

  3. 在菜单栏中,点击 Anywhere Cache

    此时会显示监控图表。

使用长时间运行的操作

AnywhereCaches CreateUpdate 操作成功运行后,会启动长时间运行的操作。您可以获取和列出长时间运行的操作,以查看底层 AnywhereCache 操作的详细信息和状态,也可以取消长时间运行的操作,以取消正在进行的底层 AnywhereCache 操作。

如需了解如何在 Anywhere Cache 中使用长时间运行的操作,请参阅使用长时间运行的操作

以下示例展示了从 AnywhereCaches Create 操作启动的长时间运行的操作:

done: false
kind: storage#operation
metadata:
  '@type': type.googleapis.com/google.storage.control.v2.CreateAnywhereCacheMetadata
  anywhereCacheId: us-central1-c
  zone: us-central1-c
  ttl: 172800s
  admissionPolicy: admit-on-first-miss
  commonMetadata:
    createTime: '2023-12-14T20:52:00.032Z'
    progressPercent: -1
    requestedCancellation: false
    type: create-anywhere-cache
    updateTime: '2023-12-14T20:52:00.032Z'
name: projects/_/buckets/my-bucket/operations/AULf_KhQxxsWRSn56wv4jfmn3pOu_dKTz9FoYx6S0EzMw5ssR0cXIiorCvHRwqxZnQmWj9jnGpKb3Y6iCD3XM9KLc8EHBm7uig
selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/operations/AULf_KhQxxsWRSn56wv4jfmn3pOu_dKTz9FoYx6S0EzMw5ssR0cXIiorCvHRwqxZnQmWj9jnGpKb3Y6iCD3XM9KLc8EHBm7uig

重试

默认情况下,异步 AnywhereCache API 具有幂等性。这意味着,您可以放心地重试异步 AnywhereCaches API 调用,而不用担心会意外修改资源。

例如,假设您执行了一个 AnywhereCaches Create 操作以在 us-central1-a 中创建缓存,并且该操作成功。然后,您使用同一可用区再次执行 AnywhereCaches Create 操作,该请求会返回与上一个请求相同的长时间运行的操作。请注意,只有在创建缓存请求中添加 request_id 时,才会出现这种行为。如果未添加 request_id,则在尝试创建已存在的缓存时,您会收到 ANYWHERE_CACHE_ALREADY_EXISTS 错误。如需了解如何添加 request_id,请参阅请求重复

后续步骤

获取有关为哪些存储桶和可用区创建缓存的建议