1.16.2. 创建主题


您可以在创建存储桶通知前创建主题。主题是 SNS 操作的一个简单通知服务(SNS)实体及所有主题操作(即 create, delete, listget)是 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]

    以下是请求参数:

    • 端点 :发送通知的端点 URL。
    • OpaqueData: 不透明数据在主题配置中设置,并添加到该主题触发的所有通知。
    • HTTP 端点:

      • URL: http[s]://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] 提供。如果没有,则topic 创建请求将被拒绝。
      • 只能通过 use-ssl 来提供用户和密码,如果不是,则与代理的连接会失败。
      • 端口默认为: 9092。
      • kafka-acklevel: 不需要结束确认,因为信息可能会在代理中被传送到最终目的地前保留。存在两个确认方法:

        • none :当发送到代理,则消息被视为已发送
        • broker :默认情况下,如果代理确认,则消息将被 发送
  2. 以以下格式创建响应:

    语法

    <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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.