创建订阅后,您可以将传送方式更改为推送、拉取或导出。
准备工作
- 创建其中一个受支持的订阅。
所需的角色和权限
如需获得更改订阅类型所需的权限,请让您的管理员为您授予订阅的 Pub/Sub Editor (roles/pubsub.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含更改订阅类型所需的权限。 pubsub.subscriptions.update
您可以在项目级层和个别资源级层配置访问权限控制。您可以在一个项目中创建订阅,并将其附加到位于不同项目中的主题。 确保您拥有每个项目所需的权限。
更改订阅的传送类型
如需更改订阅的传送类型,请执行以下步骤。
控制台
在 Cloud de Confiance 控制台中,前往 订阅 页面。
点击要更新的订阅的名称。
在订阅详情页面中,点击修改 。
对于传送类型,选择新的传送类型。
填写新订阅类型的属性。如需了解详情,请参阅以下主题:
可选。根据需要更新其他订阅属性。
点击更新 。
gcloud
如需更改传送类型,请使用
gcloud pubsub subscriptions update
命令。清除当前传送类型的配置,并设置新类型的配置,如下所示:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
CLEAR_CONFIG_FLAG \
NEW_CONFIG_FLAGS
替换以下内容:
SUBSCRIPTION_ID:要 更新的订阅的名称。
CLEAR_CONFIG_FLAG:用于清除传送类型的现有 配置的标志。根据当前的传送类型,使用以下标志之一:
拉取订阅:
--no-enable-exactly-once-delivery推送订阅:
--push-endpoint=""BigQuery 订阅:
--clear-bigquery-configBigtable 订阅:
--clear-bigtable-configCloud Storage 订阅:
--clear-cloud-storage-config
NEW_CONFIG_FLAGS:用于配置新 传送类型的标志。如需了解详情,请参阅
gcloud pubsub subscriptions update命令的文档。
示例
将 BigQuery 订阅更改为拉取订阅:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
--clear-bigquery-config
将推送订阅更改为 BigQuery 订阅:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
--push-endpoint="" \
--bigquery-table=BIGQUERY_TABLE
更新推送订阅端点
如需更新端点网址,请执行以下步骤。
控制台
如需修改端点网址,请完成以下步骤。
- 在 Cloud de Confiance 控制台中,前往 订阅 页面。
- 点击要更新的订阅旁边的 more_vert。
- 在传送类型 中,选择传送方式。
- 根据需要填写其他订阅属性。
- 点击更新 。
gcloud
-
在 Cloud de Confiance 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Cloud de Confiance Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境 。该会话可能需要几秒钟来完成初始化。
-
如需修改端点网址,请运行
gcloud pubsub subscriptions modify-push-config命令:gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
如果订阅已使用拉取传送,则设置推送端点 会将传送方式切换为推送传送。
您可以通过将推送端点更改为 空字符串来将推送切换为拉取。
REST
如需修改订阅的推送配置,请使用
projects.subscriptions.modifyPushConfig
方法:
请求:
必须使用
Authorization 标头中的访问令牌对请求进行身份验证。如需获取当前
应用默认凭据的访问令牌,请运行以下命令:gcloud auth application-default print-access-token。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:modifyPushConfig Authorization: Bearer ACCESS_TOKEN
请求正文:
{
"pushConfig": {
"pushEndpoint": "PUSH_ENDPOINT"
}
}其中:
https://myproject.appspot.com/myhandler。回答:
如果请求成功,响应将为空的 JSON 对象。
C++
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C++ 设置说明进行操作。如需了解详情,请参阅 Pub/Sub C++ API 参考文档。
C#
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub C# API 参考文档。
Go
以下示例使用 Go Pub/Sub 客户端库的主要版本 (v2)。如果您仍在使用 v1 库,请参阅 迁移到 v2 的指南。 如需查看 v1 代码示例列表,请参阅 已废弃的代码示例。
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Go API 参考文档。
Java
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Java API 参考文档。
Node.js
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
Node.ts
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
Python
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Python API 参考文档。
Ruby
以下示例使用 Ruby Pub/Sub 客户端库 v3。如果您仍在使用 v2 库,请参阅 迁移到 v3 的指南。 如需查看 Ruby v2 代码示例列表,请参阅 已废弃的代码示例。
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Ruby API 参考文档。