使用 Memorystore 连接到 Redis 缓存

如需为 Cloud Run 服务设置分布式内存数据缓存,您可以使用 Memorystore for Redis。借助 Memorystore for Redis,您可以使用内存中 Redis 数据存储区来存储应用缓存,并保证规模、安全性和高可用性。您可以直接从 Cloud Run 服务连接到 Redis 实例,但这需要执行额外的步骤来设置无服务器 VPC 访问通道连接器。

通过使用本页面介绍的 Cloud Run 集成(预览版),您可以使用 Memorystore 将 Cloud Run 服务快速连接到新的 Redis 缓存,而不必设置无服务器 VPC 访问通道连接器。如果您想要将 Cloud Run 服务连接到现有 Redis 实例,请参阅从 Cloud Run 服务连接到 Redis 实例

准备工作

  • 确保您要集成的 Cloud Run 服务已部署完毕。
  • 查看 Memorystore 价格页面。您需要为集成中使用的各个资源付费。

所需的角色

如需使用 Cloud Run 集成,您或您的管理员必须向两个不同的主账号授予 IAM 角色

点击查看您的 Google 账号需要的角色

如需获得使用 Cloud Run 集成所需的权限,请让您的管理员向您的 Google 账号授予项目的以下 IAM 角色:

点击查看服务账号需要的角色

如需部署 Cloud Run 服务,您可以使用系统自动创建的 Compute Engine 默认服务账号,也可以指定用户管理的服务账号。服务账号必须具有以下角色:

将服务连接到新的 Redis 缓存

任何配置更改都会导致新修订版本的创建。后续修订版本也将自动采用此配置设置,除非您进行了明确更新。

您可以使用控制台或命令行将 Cloud Run 服务连接到 Redis 缓存。如果您未指定内存大小,则会使用 1 GB 的缓存。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 在服务列表中,点击要在此集成中使用的服务。

  3. 点击 Integrations(集成)标签。

  4. 点击添加集成

  5. 点击 Redis - Google Cloud MemoryStore

    图片

  6. 接受默认值,或者将名称和缓存大小更改为您要使用的值。

  7. 如果系统提示您启用 API 列表,请点击启用并等待 API 启用。

  8. 资源下,记下此集成后将创建的新资源。

  9. 点击提交,然后等待集成和资源创建完成。此过程最多可能需要 15 分钟。

命令行

  1. 更新到最新的 Google Cloud CLI:

    gcloud components update
    
  2. 创建集成:

    gcloud beta run integrations create \
    --type=redis \
    --service=SERVICE \
    --parameters=memory-size-gb=MEMORY-SIZE
    

    您需要在其中:

    • SERVICE 替换为您的 Cloud Run 服务的名称。
    • MEMORY-SIZE 替换为所需的缓存大小(以 GB 为单位)。默认值为 1 GB。

    (可选)添加 --service-account=SERVICE_ACCOUNT_EMAIL 标志。

    • SERVICE_ACCOUNT_EMAIL 替换为用于部署服务的用户管理的服务账号电子邮件地址 (PROJECT_NUMBER-compute@developer.gserviceaccount.com)。如果要使用默认计算服务账号 (SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com),请省略此标志。

      如需在部署 Cloud Run 集成时继续使用指定的服务账号,请运行以下命令:

      gcloud config set runapps/deployment-service-account
      
  3. 等待最多 15 分钟,在此期间,系统会创建并连接一个完全配置的 Redis 缓存。 此外,系统还会创建新的 Cloud Run 修订版本,包括 Redis 缓存所需的网络配置和环境变量。该过程完成后,系统会显示以下消息:

    [redis] integration [redis-xxx] has been updated successfully.
    
    To connect to the Redis instance, utilize the environment variables
    REDISHOST and REDISPORT. These have been added to the Cloud Run service
    for you.

    您可以使用 gcloud beta run integrations describe 来查看状态

更新 Redis 缓存集成

更新集成会更新与该集成关联的所有 Google Cloud 资源。如需在 Cloud Run 服务中更新 Redis 缓存集成,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击要更新的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到 Redis 缓存集成,然后点击修改

  5. 更新完字段后,点击更新

命令行

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 运行用于更新集成的命令:

    gcloud beta run integrations update INTEGRATION_NAME
    

    您需要在其中:

    • INTEGRATION_NAME 替换为 Redis 缓存集成的名称。

    (可选)您可以使用以下标志选项:

    选项 说明
    --parameters 缓存的内存大小(以 GB 为单位)。
    --service-account 更新服务时指定的用户管理的服务账号电子邮件地址。此服务账号会覆盖部署时所使用的前一个服务账号。

查看 Redis 缓存集成

如需查看 Cloud Run 服务的 Redis 缓存集成的当前状态,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 在服务列表中,点击要在此集成中使用的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到相关 Redis 缓存集成,然后点击查看详情

命令行

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 使用返回列表中的名称显示它的详细信息:

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME 替换为 Redis 缓存集成的名称。

删除 Redis 缓存集成

如果删除集成,则系统还会删除与该集成关联的所有 Google Cloud 资源,但不会删除 Cloud Run 服务。

如需从 Cloud Run 服务中删除 Redis 缓存集成,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击要删除集成的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到您感兴趣的 Redis 缓存集成,点击集成右侧的省略号图标,然后点击删除

命令行

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 使用返回列表中的名称删除集成:

    gcloud beta run integrations delete INTEGRATION_NAME
    

    您需要在其中:

    • INTEGRATION_NAME 替换为 Redis 缓存集成的名称。

    (可选)您可以使用以下标志选项:

    选项 说明
    --service-account 用于执行删除操作的用户管理的服务账号电子邮件地址。

访问代码中的 Redis 缓存

请注意,完成本页面中所述的集成后,系统会自动添加环境变量 REDISHOSTREDISPORT 以供 Cloud Run 服务代码使用。

使用 Redis 的服务示例代码

请参阅 Memorystore 文档,了解使用 Redis 的多语言版完整 Cloud Run 和 Redis 代码示例

限制