2.15.3. 创建主题


您可以在创建存储桶通知前创建主题。主题是一个简单通知服务(SNS)实体和所有主题操作,即 创建删除列出get 是 SNS 操作。主题需要具有创建存储桶通知时使用的端点参数。请求成功后,响应中包含稍后可用来在存储桶通知请求中引用此主题的 Amazon Resource Name(ARN)主题。

注意

topic_arn 提供存储桶通知配置,并在创建主题后生成。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 根级别访问权限.
  • 安装 Ceph 对象网关.
  • 用户 access key 和 secret key。
  • 端点参数.

流程

  1. 创建带有请求格式的主题:

    语法

    POST
    Action=CreateTopic
    &Name=TOPIC_NAME
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=EXCHANGE]
    [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker|routable]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
    [&Attributes.entry.6.key=ca-location&Attributes.entry.6.value=FILE_PATH]
    [&Attributes.entry.7.key=OpaqueData&Attributes.entry.7.value=OPAQUE_DATA]
    [&Attributes.entry.8.key=push-endpoint&Attributes.entry.8.value=ENDPOINT]
    [&Attributes.entry.9.key=persistent&Attributes.entry.9.value=true|false]

    以下是请求参数:

    • 端点 :要发送通知的端点的 URL。
    • OpaqueData: 不透明数据在主题配置中设置,并添加到该主题触发的所有通知。
    • persistent :指示对此端点的通知是否是持久的,是否为异步的。默认值为 false
    • HTTP 端点:

      • URL: https://FQDN:PORT
      • port defaults to: 分别为 HTTP[S] 使用 80/443。
      • verify-ssl :指示服务器证书是否由客户端验证。默认情况下,它是 true
    • AMQP0.9.1 端点:

      • URL: amqp://USER:PASSWORD@FQDN:PORT[/VHOST].
      • 用户和密码分别默认为: guestguest
      • 应当通过 HTTPS 提供用户和密码详细信息,否则主题创建请求将被拒绝。
      • 端口默认为 :5672。
      • vhost 默认为:"/"
      • amqp-exchange :该交换必须存在,并且能够根据主题路由消息。这是用于 AMQP0.9.1 的强制参数。指向同一端点的不同主题必须使用相同的交换。
      • AMQP-acklevel: 不需要端到端确认,因为消息可能会在代理中保留,然后再传送到最终目的地。有三个确认方法:

        • none :当发送到代理,则消息被视为已发送
        • broker: 默认情况下,如果代理确认,则消息被视为已 发送
        • routable :如果代理可路由到使用者,则消息被视为已发送

          注意

          特定参数的键和值不必驻留在同一行中,或者按任何特定顺序,但必须使用相同的索引。属性索引不需要是连续的,或从任何特定值开始。

          注意

          topic-name 用于 AMQP 主题。

    • Kafka 端点:

      • URL: kafka://USER:PASSWORD@FQDN:PORT.
      • use-ssl 默认被设置为 false。如果将 use-ssl 设置为 true,则与代理的连接会使用安全的连接。
      • 如果提供了 ca-location,并且使用安全连接,则会使用指定的 CA 而不是默认的端口来验证代理。
      • 用户和密码只能通过 HTTP[S] 提供。否则,主题创建请求将被拒绝。
      • 用户和密码只能随 use-ssl 一同提供,否则与代理的连接将失败。
      • 端口默认为: 9092。
      • Kafka-acklevel: 不需要结束确认,因为信息可能会在代理中保留,然后再发送到最终目的地。存在两种确认方法:

        • none :当发送到代理,则消息被视为已发送
        • broker: 默认情况下,如果代理确认,则消息被视为已 发送

以下是响应格式的示例:

示例

<CreateTopicResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
    <CreateTopicResult>
        <TopicArn></TopicArn>
    </CreateTopicResult>
    <ResponseMetadata>
        <RequestId></RequestId>
    </ResponseMetadata>
</CreateTopicResponse>

注意

响应中的 Amazon 资源名称(ARN)将具有以下格式: arn:aws:sns:ZONE_GROUP:TENANT:TOPIC

以下是一个 AMQP0.9.1 端点的示例:

示例

client.create_topic(Name='my-topic' , Attributes={'push-endpoint': 'amqp://127.0.0.1:5672', 'amqp-exchange': 'ex1', 'amqp-ack-level': 'broker'}) "

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部