创建主题

您可以先创建主题,然后再创建存储区通知。 主题是简单通知服务 (SNS) 实体,所有主题操作 (即 createdeletelistget) 都是 SNS 操作。 主题需要具有在创建存储区通知时使用的端点参数。 请求成功后,响应将包含主题 Amazon Resource Name (ARN) ,稍后可用于在存储区通知请求中引用此主题。

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

先决条件

  • 正在运行的 IBM Storage Ceph 集群。

  • 根级别访问权。

  • 安装 Ceph Object Gateway。

  • 用户访问密钥和密钥。

  • 端点参数。

  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]

    以下是请求参数:

    • Endpoint: URL ,用于发送通知的终端。

    • OpaqueData: 在主题配置中设置不透明数据,并将其添加到主题触发的所有通知中。

    • persistent: 指示此端点的通知是否是持久的异步通知。 缺省情况下,该值为 false

    • HTTP 终点:

      • URL: https:// FQDN:PORT

      • port defaults to:请将 80/443 用于 HTTP。

      • verify-ssl: 指示服务器证书是否由客户机验证。 缺省情况下,它是 true

    • AMQP0.9.1 端点:

      • URL:amqp: //USER:PASSWORD@FQDN:PORT

      • 用户和密码分别缺省为: guestguest

      • 用户和密码信息应通过 HTTPS 提供,否则创建主题的请求将被拒绝。

      • port defaults to: 5672。

      • vhost 缺省为: "/"

      • amqp-exchange: 这些交换必须存在并且能够根据主题路由消息。 这是 AMQP0.9.1的必需参数。 指向同一端点的不同主题必须使用同一交换。

      • amqp-ack-level: 不需要端到端应答,因为在将消息传递到其最终目标之前,这些消息可能会持久存储在代理中。 存在三种应答方法:

        • none: 如果将消息发送到代理,那么会将其视为 delivered

        • broker: 缺省情况下,如果代理确认了此消息,那么会将其视为 delivered

        • routable: 如果代理可以路由到使用者,那么会将消息视为 delivered

          注: 特定参数的键和值不必位于同一行或任何特定顺序中,但必须使用相同的索引。 属性索引不需要是顺序的,也不需要从任何特定值开始。

          注: topic-name 用于 AMQP 主题。

    • Kafka 端点:

      • URL: kafka:USER:PASSWORD@FQDN:PORT

      • 缺省情况下, use-ssl 设置为 false 。 如果 use-ssl 设置为 true,那么将使用安全连接与代理程序进行连接。

      • 如果提供了 ca-location ,并且使用了安全连接,那么将使用指定的 CA (而不是缺省 CA) 来认证代理程序。

      • 用户和密码只能通过 HTTP [S]提供。 否则,将拒绝主题创建请求。

      • 用户和密码只能与 use-ssl一起提供,否则,与代理的连接将失败。

      • port defaults to: 9092。

      • kafka-ack-level: 不需要端到端应答,因为在将消息传递到其最终目标之前,这些消息可能会持久存储在代理中。 存在两种应答方法:

        • none: 如果将消息发送到代理,那么会将其视为 delivered

        • broker: 缺省情况下,如果代理确认了此消息,那么会将其视为 delivered

以下是响应格式的示例:

示例

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

注: 响应中的主题 Amazon Resource Name (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'}) "