管理代理池

代理池是使用同一配置的代理的集合,这些代理具有对来源和目标的统一访问权限和公开范围。代理池还可控制转移带宽限制。

所有代理都必须属于某个代理池。

本指南介绍了如何使用代理池。

准备工作

您必须拥有项目的正确权限才能使用代理池。如需了解详情,请参阅使用 IAM 进行访问权限控制

您可以查看当前权限

如需使用 gcloud 命令,请安装 gcloud 命令行工具

创建代理池

请勿在代理池名称中包含敏感信息,例如个人身份信息 (PII) 或安全数据。资源名称可能会传播到其他 Google Cloud 资源的名称,并且可能会向您项目之外的 Google 内部系统公开。

如需创建代理池,请执行以下操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,转到代理池页面。

    转到“代理池”

    系统随即将显示代理池页面,其中列出了现有的代理池。

  2. 点击创建另一个池

  3. 为您的池命名,并视需要添加描述。

  4. 您可以选择设置将应用于整个池的带宽限制。所指定的带宽(以 MB/s 为单位)将在池中的所有代理之间拆分。 如需了解详情,请参阅管理网络带宽

  5. 点击创建

REST API

使用 projects.agentPools.create

POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID

其中:

  • PROJECT_ID:要在其中创建代理池的项目 ID。
  • AGENT_POOL_ID:您要创建的代理池 ID。

如果代理池卡在 Creating 状态超过 30 分钟,我们建议您删除代理池并重新创建。

当代理池处于 Creating 状态时,从项目中撤消所需的 Storage Transfer Service 权限会导致服务行为不正确。

gcloud CLI

如需使用 gcloud 命令行工具创建代理池,请运行 gcloud transfer agent-pools create

gcloud transfer agent-pools create NAME \
  [--no-async] \
  [--bandwidth-limit=BANDWIDTH_LIMIT] \
  [--display-name=DISPLAY_NAME]

其中有以下选项可用:

  • NAME 是此池的唯一永久性标识符。

  • --no-async 会阻止终端中的其他任务,直到池创建为止。如果未包含,则池创建将异步运行。

  • --bandwidth-limit 定义了此池的代理可以使用的带宽(以 MB/秒为单位)。带宽上限适用于池中的所有代理,可防止池的转移工作负载干扰共用带宽的其他操作。例如,输入“50”可将带宽设置为 50 MB/秒。如果未指定此标志,则此池的代理将使用它们可用的所有带宽。

  • --display-name 是可修改的名称,有助于您识别此池。您可以包括可能不适合池的唯一完整资源名称的详细信息。

将代理分配给池

新代理池为空,必须为其分配代理。只能在创建代理时将代理分配给代理池。

如果未指定代理池,则会将代理分配给 transfer_service_default 池。

如需创建代理并将其分配给池,请执行以下操作:

Google Cloud 控制台

  1. 代理池页面中,选择要向其分配代理的池。

  2. 点击安装代理。此时将显示代理安装指南。

  3. 按照说明在此代理池中创建代理。

gcloud CLI

如需使用 gcloud 命令行工具创建代理并将其分配给池,请运行 gcloud transfer agents install。代理必须安装在对文件系统具有根访问权限的机器上。

gcloud transfer agents install --pool=AGENT_POOL

如需安装要用于兼容 S3 的来源的代理,您需要提供访问凭据,该凭据可作为 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 值存储在环境变量中,也可以作为默认凭据存储在您系统的配置文件中。

export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME

如需了解详情,请参阅管理转移代理

如需了解其他选项,请参阅高级代理选项

如需管理代理,请参阅管理转移代理

将代理池分配给作业

创建代理池后,可以在作业创建更新期间将其分配给作业。

更新代理池

您可以更新代理池的显示名和带宽限制。

如需更新代理池,请执行以下操作:

Google Cloud 控制台

在 Google Cloud 控制台中,转到代理池页面。

转到“代理池”

您可以修改以下各项:

  • 代理池的显示名:点击当前代理池名称旁边的修改

  • 代理池的带宽限制:点击设置带宽限制,然后在设置带宽限制对话框中输入新的带宽限制。点击设置限制以应用新的带宽限制。 带宽会在池中的所有代理之间共享。

REST API

要更新代理池,请使用 projects.agentPools.patch 和要更新的字段的字段掩码。您可以更新以下代理池字段:

例如,要将 displayName 更新为 my-transfer,您需要提供字段掩码 "displayName,my-transfer"

以下是更新显示名称的示例修补请求:

PATCH https://storagetransfer.googleapis.com/v1/projects/{PROJECT_ID}/agentPools/{AGENT_POOL_ID}:"displayName,NEW_NAME"

其中:

  • PROJECT_ID:要在其中更新代理池的项目 ID。
  • AGENT_POOL_ID:您要更新的代理池 ID。
  • NEW_NAME:此代理池的新显示名称。

以下是更新带宽限制的修补请求示例:

PATCH https://storagetransfer.googleapis.com/v1/projects/{PROJECT_ID}/agentPools/{AGENT_POOL_ID}:"bandwidthLimit,NEW_LIMIT"

其中:

  • PROJECT_ID:要在其中更新代理池的项目 ID。
  • AGENT_POOL_ID:您要更新的代理池 ID。
  • NEW_LIMIT:此代理池的新带宽限制。

gcloud CLI

如需使用 gcloud 命令行工具更新代理池,请运行 gcloud transfer agent-pools update

gcloud transfer agent-pools update NAME \
  [--bandwidth-limit=NEW_BANDWIDTH_LIMIT] [--clear-bandwidth-limit] \
  [--clear-display-name] [--display-name=NEW_DISPLAY_NAME]

以下是必填参数:

  • NAME 是此池的唯一永久性标识符。NAME 标识要更新的代理池,且无法自行更新。

可以随此命令指定以下标志:

  • 指定 --clear-bandwidth-limit 可以进行更新,或者改为指定 --bandwidth-limit 可以进行移除。如需详细了解带宽限制,请参阅创建代理池

  • 使用 --display-name 标志可以进行更新,或者改用 --clear-display-name 标志进行删除。

删除代理池

您可以删除没有活跃代理和活跃作业运行的代理池。

如需删除代理池,请执行以下操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,转到代理池页面。

    转到“代理池”

  2. 点击 删除。 阅读弹出式窗口,然后点击删除进行确认。

    如果删除按钮未处于激活状态,则您需要停止与此池关联的所有代理和作业。

REST API

使用 projects.agentPools.delete

DELETE https://storagetransfer.googleapis.com/v1/{name=PROJECT_ID/*/agentPools/}

其中:

  • PROJECT_ID:要从中删除代理池的项目 ID。

gcloud CLI

如需使用 gcloud 命令行工具删除代理池,请运行 gcloud transfer agent-pools delete

gcloud transfer agent-pools delete NAME

以下是必填参数:

  • NAME 是此池的唯一永久性标识符。

如需删除池,您必须先停止该池中的所有代理,还必须停用池的作业,并且此池不得具有正在进行的转移操作。

如需查看与池关联的所有作业,请在 Google Cloud Console 中选择池,然后点击转移作业标签页。

获取代理池

如需获取代理池,请执行以下操作:

Google Cloud 控制台

在 Google Cloud 控制台中,转到代理池页面。

转到“代理池”

该页面显示与项目关联的所有代理池的列表,以及每个代理池的以下信息:

  • 代理池名称
  • 连接状态
  • 连接的代理数
  • 带宽限制(如果已设置)
  • 关联的转移作业的数量
  • 代理池的显示名称

如需查看特定代理池,请点击代理池的名称

您可以在代理池的信息页面中执行以下操作:

  • 安装代理:显示有关安装转移代理的说明。
  • 停止代理:在表格中选择代理,然后点击停止代理 (Stop Agent)。
  • 列出转移作业:点击转移作业以显示此池中关联的转移作业代理。

REST API

使用 projects.agentPools.get

GET https://storagetransfer.googleapis.com/v1/{name=PROJECT_ID/*/agentPools/}

其中:

  • PROJECT_ID:要获取其代理池的项目 ID。

gcloud CLI

如需使用 gcloud 命令行工具检索代理池,请运行 gcloud transfer agent-pools describe

gcloud transfer agent-pools describe NAME

以下是必填参数:

  • NAME 是此池的唯一永久性标识符。

列出代理池

如需列出代理池,请执行以下操作:

Google Cloud 控制台

在 Google Cloud 控制台中,转到代理池页面。

转到“代理池”

系统会显示所有代理池。

REST API

使用 projects.agentPools.list

GET https://storagetransfer.googleapis.com/v1/projects/{project_id=PROJECT_ID}/agentPools

其中:

  • PROJECT_ID:要获取其代理池的项目 ID。

gcloud CLI

如需使用 gcloud 命令行工具列出代理池,请运行 gcloud transfer agent-pools list

gcloud transfer agent-pools list \
  [--limit=LIMIT] \
  [--names=[NAMES,...]] \
  [--page-size=PAGE_SIZE]

可以随此命令指定以下标志:

  • --limit 定义要返回的代理池的最大数量。

  • --names 指定要列出的代理池的名称。请使用英文逗号分隔多个名称。例如 --names=foo,bar。如果未指定,则会列出当前项目中的所有代理池。

  • --page-size 定义此命令的批处理行为。默认情况下,list 命令会将响应批处理为 256 个项目,自动提取下一个批次,直到列出所有项目或达到 limit

该命令会返回匹配的代理池及其配置详细信息的列表。以下示例显示了一个示例响应。

name: projects/my-project-123/agentPools/my-first-pool
state: CREATED
---
bandwidthLimit:
  limitMbps: '120'
displayName: Source A to destination Z.
name: projects/my-project-123/agentPools/a2z-pool
state: CREATED