您可以将导入主题转换为标准主题,反之亦然。
将导入的主题转换为标准主题
如需将导入的主题转换为标准主题,请清除提取设置。执行以下步骤:
控制台
在 Google Cloud 控制台中,前往主题页面。
点击“导入”主题。
在主题详情页面中,点击修改。
取消选中启用提取选项。
点击更新。
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
运行
gcloud pubsub topics update
命令:gcloud pubsub topics update TOPIC_ID \ --clear-ingestion-data-source-settings
将 TOPIC_ID 替换为主题 ID。
将标准主题转换为 Amazon Kinesis Data Streams 导入主题
如需将标准主题转换为 Amazon Kinesis Data Streams 导入主题,请先检查您是否满足所有前提条件。
控制台
-
在 Google Cloud 控制台中,前往主题页面。
-
点击您要转换为导入主题的主题。
-
在主题详情页面中,点击修改。
-
选择启用提取选项。
-
对于提取来源,请选择 Amazon Kinesis Data Streams。
-
输入以下详细信息:
-
Kinesis 数据流 ARN:您计划注入到 Pub/Sub 的 Kinesis Data Streams 的 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
。 -
Kinesis 使用方 ARN:已注册到 AWS Kinesis Data Streams 的使用方资源的 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
。 -
AWS 角色 ARN:AWS 角色的 ARN。角色的 ARN 格式如下:
arn:aws:iam:${Account}:role/${RoleName}
。 -
服务账号:您在在 Google Cloud 中创建服务账号中创建的服务账号。
-
-
点击更新。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用以下示例中提及的所有标志运行
gcloud pubsub topics update
命令:gcloud pubsub topics update TOPIC_ID \ --kinesis-ingestion-stream-arn KINESIS_STREAM_ARN\ --kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN\ --kinesis-ingestion-role-arn KINESIS_ROLE_ARN\ --kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNT
替换以下内容:
-
TOPIC_ID 是主题 ID 或名称。此字段无法更新。
-
KINESIS_STREAM_ARN 是您计划注入到 Pub/Sub 的 Kinesis Data Streams 的 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
。 -
KINESIS_CONSUMER_ARN 是已注册到 AWS Kinesis Data Streams 的使用方资源的 ARN。ARN 格式如下:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
。 -
KINESIS_ROLE_ARN 是 AWS 角色的 ARN。该角色的 ARN 格式如下:
arn:aws:iam:${Account}:role/${RoleName}
。 -
PUBSUB_SERVICE_ACCOUNT 是您在在 Google Cloud 中创建服务账号中创建的服务账号。
-
Go
在尝试此示例之前,请按照 Pub/Sub 快速入门:使用客户端库中的 Go 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Go API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
在尝试此示例之前,请按照 Pub/Sub 快速入门:使用客户端库中的 Java 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Java API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照 Pub/Sub 快速入门:使用客户端库中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
在尝试此示例之前,请按照 Pub/Sub 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Python API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C++
在尝试此示例之前,请按照 Pub/Sub 快速入门:使用客户端库中的 C++ 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub C++ API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js (TypeScript)
在尝试此示例之前,请按照《Pub/Sub 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
如需向 Pub/Sub 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
如需详细了解 ARN,请参阅 Amazon 资源名称 (ARN) 和 IAM 标识符。
将标准主题转换为 Cloud Storage 导入主题
如需将标准主题转换为 Cloud Storage 导入主题,请先检查您是否满足所有前提条件。
控制台
-
在 Google Cloud 控制台中,前往主题页面。
-
点击要转换为 Cloud Storage 导入主题的主题。
-
在主题详情页面中,点击修改。
-
选择启用提取选项。
-
在“提取来源”中,选择 Google Cloud Storage。
-
对于 Cloud Storage 存储桶,请点击浏览。
系统随即会打开选择存储桶页面。从下列选项中选择一项:
-
从任何适当的项目中选择一个现有存储桶。
-
点击“创建”图标,然后按照屏幕上的说明创建新存储桶。创建存储桶后,选择 Cloud Storage 导入主题对应的存储桶。
-
-
当您指定存储桶时,Pub/Sub 会检查 Pub/Sub 服务账号是否对该存储桶拥有适当的权限。如果存在权限问题,您会看到与权限相关的错误消息。
如果您遇到权限问题,请点击设置权限。如需了解详情,请参阅 向 Pub/Sub 服务账号授予 Cloud Storage 权限。
-
对于对象格式,请选择文本、Avro 或 Pub/Sub Avro。
如果您选择文本,可以选择指定分隔符,以便将对象拆分为消息。
如需详细了解这些选项,请参阅输入格式。
- 可选。您可以为主题指定创建对象的最短时间。如果设置,则系统只会提取在最短对象创建时间之后创建的对象。
如需了解详情,请参阅 创建对象的最短时间。
- 您必须指定 Glob 模式。如需注入存储桶中的所有对象,请使用
**
作为 glob 模式。仅注入与给定模式相匹配的对象。如需了解详情,请参阅 匹配全局通配模式。
- 保留其他默认设置。
- 点击更新主题。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
为避免丢失导入主题的设置,请务必在每次更新主题时添加所有设置。如果您省略了某些内容,Pub/Sub 会将设置重置为原始默认值。
使用以下示例中提及的所有标志运行
gcloud pubsub topics update
命令:gcloud pubsub topics update TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
替换以下内容:
-
TOPIC_ID 是主题 ID 或名称。此字段无法更新。
-
BUCKET_NAME:指定现有存储桶的名称。例如
prod_bucket
。 存储桶名称不得包含项目 ID。如需创建存储桶,请参阅创建存储桶。 -
INPUT_FORMAT:指定要提取的对象的格式。可以是
text
、avro
或pubsub_avro
。如需详细了解这些选项,请参阅输入格式。 -
TEXT_DELIMITER:指定用于将文本对象拆分为 Pub/Sub 消息的分隔符。此字符必须为单个字符,并且只能在
INPUT_FORMAT
为text
时设置。默认为换行符 (\n
)。使用 gcloud CLI 指定分隔符时,请仔细注意对新行
\n
等特殊字符的处理。使用格式'\n'
可确保正确解读分隔符。仅使用\n
(不带引号或转义)会导致分隔符为"n"
。 -
MINIMUM_OBJECT_CREATE_TIME:指定对象创建后的最短时间,以便进行提取。此值应采用 UTC 格式,格式为
YYYY-MM-DDThh:mm:ssZ
。例如2024-10-14T08:30:30Z
。从
0001-01-01T00:00:00Z
到9999-12-31T23:59:59Z
(包括这两个数值)之间的任何日期(过去或未来)均有效。 -
MATCH_GLOB:指定要匹配的 glob 模式,以便提取对象。使用 gcloud CLI 时,包含
*
字符的匹配正则表达式必须将*
字符的格式设置为转义形式(\*\*.txt
),或者整个匹配正则表达式必须用引号"**.txt"
或'**.txt'
括起来。如需了解 glob 模式支持的语法,请参阅 Cloud Storage 文档。
-