代理池是使用同一配置的代理的集合,这些代理具有对来源和目标的统一访问权限和公开范围。代理池还可控制转移带宽限制。
所有代理都必须属于某个代理池。
本指南介绍了如何使用代理池。
准备工作
您必须拥有项目的正确权限才能使用代理池。如需了解详情,请参阅使用 IAM 进行访问权限控制。
您可以查看当前权限。
如需使用 gcloud
命令,请安装 gcloud 命令行工具。
创建代理池
如需创建代理池,请执行以下操作:
Google Cloud 控制台
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 AGENT_POOL
其中有以下选项可用:
AGENT_POOL 是此池的唯一永久性标识符。
--no-async
会阻止终端中的其他任务,直到池创建为止。如果未包含,则池创建将异步运行。--bandwidth-limit
定义了此池的代理可以使用的带宽(以 MB/秒为单位)。带宽上限适用于池中的所有代理,可防止池的转移工作负载干扰共用带宽的其他操作。例如,输入“50”可将带宽设置为 50 MB/秒。如果未指定此标志,则此池的代理将使用它们可用的所有带宽。--display-name
是可修改的名称,有助于您识别此池。您可以包括可能不适合池的唯一完整资源名称的详细信息。
将代理分配给池
新代理池为空,必须为其分配代理。只能在创建代理时将代理分配给代理池。
如果未指定代理池,则会将代理分配给 transfer_service_default
池。
如需创建代理并将其分配给池,请执行以下操作:
Google Cloud 控制台
在代理池页面中,选择要向其分配代理的池。
点击安装代理。此时将显示代理安装指南。
按照说明在此代理池中创建代理。
gcloud CLI
如需使用 gcloud
命令行工具创建代理并将其分配给池,请运行 gcloud transfer agents install
。代理必须安装在对文件系统具有根访问权限的机器上。
gcloud transfer agents install --pool=AGENT_POOL
如需安装要用于兼容 S3 的来源的代理,您需要提供访问凭据,该凭据可作为 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
值存储在环境变量中,也可以作为默认凭据存储在您系统的配置文件中。
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=AGENT_POOL
如需了解详情,请参阅管理转移代理。
如需了解其他选项,请参阅高级代理选项。
如需管理代理,请参阅管理转移代理。
将代理池分配给作业
更新代理池
您可以更新代理池的显示名和带宽限制。
如需更新代理池,请执行以下操作:
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:"displayName,NEW_DISPLAY_NAME"
其中:
PROJECT_ID
:要在其中更新代理池的项目 ID。AGENT_POOL
:您要更新的代理池的名称。NEW_DISPLAY_NAME
:此代理池的新显示名称。
以下是更新带宽限制的修补请求示例:
PATCH https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools/AGENT_POOL:"bandwidthLimit,NEW_LIMIT"
其中:
PROJECT_ID
:要在其中更新代理池的项目 ID。AGENT_POOL
:您要更新的代理池 ID。NEW_LIMIT
:此代理池的新带宽限制。
gcloud CLI
如需使用 gcloud
命令行工具更新代理池,请运行 gcloud transfer agent-pools update
。
gcloud transfer agent-pools update AGENT_POOL \
[--bandwidth-limit=NEW_BANDWIDTH_LIMIT] [--clear-bandwidth-limit] \
[--clear-display-name] [--display-name=NEW_DISPLAY_NAME]
以下是必填参数:
- AGENT_POOL 是此池的唯一永久性标识符。
AGENT_POOL
标识要更新的代理池,且无法自行更新。
可以随此命令指定以下标志:
指定
--clear-bandwidth-limit
可以进行更新,或者改为指定--bandwidth-limit
可以进行移除。如需详细了解带宽限制,请参阅创建代理池。使用
--display-name
标志可以进行更新,或者改用--clear-display-name
标志进行删除。
删除代理池
您可以删除没有活跃代理和活跃作业运行的代理池。
如需删除代理池,请执行以下操作:
Google Cloud 控制台
在 Google Cloud 控制台中,转到代理池页面。
点击
删除。 阅读弹出式窗口,然后点击删除进行确认。如果删除按钮未处于激活状态,则您需要停止与此池关联的所有代理和作业。
REST API
使用 projects.agentPools.delete:
DELETE https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools/AGENT_POOL
其中:
PROJECT_ID
:要从中删除代理池的项目 ID。AGENT_POOL
:代理池名称。
gcloud CLI
如需使用 gcloud
命令行工具删除代理池,请运行 gcloud transfer agent-pools delete
。
gcloud transfer agent-pools delete AGENT_POOL
以下是必填参数:
- AGENT_POOL 是此池的唯一永久性标识符。
如需删除池,您必须先停止该池中的所有代理,还必须停用池的作业,并且此池不得具有正在进行的转移操作。
如需查看与池关联的所有作业,请在 Google Cloud Console 中选择池,然后点击转移作业标签页。
获取代理池
如需获取代理池,请执行以下操作:
Google Cloud 控制台
在 Google Cloud 控制台中,转到代理池页面。
该页面显示与项目关联的所有代理池的列表,以及每个代理池的以下信息:
- 代理池名称
- 连接状态
- 连接的代理数
- 带宽限制(如果已设置)
- 关联的转移作业的数量
- 代理池的显示名称
如需查看特定代理池,请点击代理池的名称。
您可以在代理池的信息页面中执行以下操作:
- 安装代理:显示有关安装转移代理的说明。
- 停止代理:在表格中选择代理,然后点击停止代理 (Stop Agent)。
- 列出转移作业:点击转移作业以显示此池中关联的转移作业代理。
REST API
GET https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools/AGENT_POOL
其中:
PROJECT_ID
:要获取其代理池的项目 ID。AGENT_POOL
:要检索的代理池。
gcloud CLI
如需使用 gcloud
命令行工具检索代理池,请运行 gcloud transfer agent-pools describe
。
gcloud transfer agent-pools describe AGENT_POOL
以下是必填参数:
- AGENT_POOL 是此池的唯一永久性标识符。
列出代理池
如需列出代理池,请执行以下操作:
Google Cloud 控制台
在 Google Cloud 控制台中,转到代理池页面。
系统会显示所有代理池。
REST API
GET https://storagetransfer.googleapis.com/v1/projects/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