创建主题
您可以先创建主题,然后再创建存储区通知。 主题是简单通知服务 (SNS) 实体,所有主题操作 (即 create, delete, list和 get) 都是 SNS 操作。 主题需要具有在创建存储区通知时使用的端点参数。 请求成功后,响应将包含主题 Amazon Resource Name (ARN) ,稍后可用于在存储区通知请求中引用此主题。
注: topic_arn 提供存储区通知配置,并在创建主题后生成。
先决条件
正在运行的 IBM Storage Ceph 集群。
根级别访问权。
安装 Ceph Object Gateway。
用户访问密钥和密钥。
端点参数。
创建具有以下请求格式的主题:
语法
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:PORTport defaults to:请将 80/443 用于 HTTP。verify-ssl: 指示服务器证书是否由客户机验证。 缺省情况下,它是true。
AMQP0.9.1 端点:
URL:amqp: //USER:PASSWORD@FQDN:PORT。用户和密码分别缺省为:
guest和guest。用户和密码信息应通过 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'}) "