2.15.3. トピックの作成
バケット通知を作成する前に、トピックを作成できます。トピックは Simple Notification Service (SNS) エンティティーで、すべてのトピック操作 (つまり create、delete、list、および get) は SNS 操作です。トピックには、バケット通知の作成時に使用されるエンドポイントパラメーターが必要です。リクエストが正常に行われると、レスポンスには、バケット通知要求でこのトピックを参照するために後で使用できるトピックの Amazon Resource Name (ARN) が含まれます。
topic_arn はバケット通知設定を提供し、トピックの作成後に生成されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ルートレベルのアクセス。
- 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:PORT -
port defaults to: HTTP または HTTPS にそれぞれ 80 または 443 を使用します。 -
verify-ssl: サーバー証明書がクライアントによって検証されているかどうかを示します。デフォルトではtrueです。
-
AMQP0.9.1 エンドポイント:
-
URL: amqp://USER:PASSWORD@FQDN:PORT[/VHOST]. -
ユーザーおよびグループのデフォルト値はそれぞれ
guestとguestです。 - ユーザーおよびパスワードの詳細は HTTPS 経由で提供する必要があります。そうしないと、トピック作成要求は拒否されます。
-
Port のデフォルト値は 5672 です。 -
vhostのデフォルトは “/” です。 -
amqp-exchange: 交換は存在し、トピックに基づいてメッセージをルーティングできる必要があります。これは AMQP0.9.1 の必須パラメーターです。同じエンドポイントを参照するさまざまなトピックが同じ交換を使用する必要があります。 amqp-ack-level: 最終宛先に送信される前にメッセージがブローカーで永続化される可能性があるため、終了確認は不要です。承認メソッドは 3 つあります。-
none: ブローカーに送信された場合にメッセージが配信されていると見なされます。 -
broker: デフォルトでは、メッセージはブローカーによって確認応答されると配信されていると見なされます。 routable: ブローカーがコンシューマーにルーティングできる場合、メッセージは配信されていると見なされます。注記特定のパラメーターのキーと値は、同じ行または特定の順序で存在する必要はありませんが、同じインデックスを使用する必要があります。属性インデックスは、特定の値から順番にしたり、開始したりする必要はありません。
注記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 のデフォルト値は 9092 です。 kafka-ack-level: 最終宛先に送信される前にメッセージがブローカーで永続化される可能性があるため、終了確認は不要です。承認メソッドは 2 つあります。-
none: ブローカーに送信された場合にメッセージが配信されていると見なされます。 -
broker: デフォルトでは、メッセージはブローカーによって確認応答されると配信されていると見なされます。
-
-
-
応答形式の例を以下に示します。
例
<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'}) "