Pub/Sub API によるプラットフォームイベント通知の登録
Pub/Sub API サービスは proto ファイルで定義され、RPC メソッドパラメーターと戻り値の型がプロトコルバッファメッセージとして指定されます。Pub/Sub API は、Subscribe RPC コールの応答を、proto ファイルに指定されたプロトコルバッファメッセージ種別に基づいて逐次化します。詳細は、gRPC ドキュメントの「What is gRPC? (gRPC とは?)」と「Protocol Buffers (プロトコルバッファ)」、および Pub/Sub API の GitHub リポジトリの「pubsub_api.proto」を参照してください。
Subscribe メソッドは双方向ストリーミングを使用します。これにより、クライアントでは、イベントを消費しながらより多くのイベントを要求できます。クライアントでは、FetchRequest パラメーターで要求されるイベントの数を設定することで、受信するイベントのフローを制御できます。
Salesforce はプラットフォームイベントを、受信した順序で Pub/Sub API クライアントに順次送信します。イベント通知の順序はイベントの再実行 ID に基づきます。クライアントでは、イベントのバッチを一度に受信できます。FetchResponses で受信する、Subscribe コールごとの全バッチの総イベント数は、クライアントが要求するイベント数と同じになります。イベント数は個々のバッチごとに異なる可能性があります。クライアントが受信したイベントにバッファを使用する場合、バッファのサイズがバッチ内のすべてのイベントメッセージを保持するのに十分な大きさであることを確認してください。必要なバッファサイズは、公開率とイベントメッセージのサイズによって異なります。バッファサイズは 3 MB に設定することをお勧めします。
Pub/Sub API の RPC メソッドの詳細については、『Pub/Sub API』開発者ガイドの「Pub/Sub API RPC Method (Pub/Sub API RPC メソッド)」のリファレンスを参照してください。
プラットフォームイベントのチャネル名は大文字と小文字が区別されます。イベントへ登録するには、この形式を使用してください。
カスタムチャネルへ登録するには、この形式を使用してください。
例
「Low Ink (低インクレベル)」という名前のプラットフォームイベントがある場合、登録時に次のチャネル名を指定します。
この例は、受信したイベントメッセージのペイロードに含まれる項目を示しています。この例では、ペイロードのみが出力されます。受信するイベントメッセージには、ペイロードの他にスキーマ ID とイベント ID も含まれています。
Pub/Sub API はシステム統合のために使用するもので、エンドユーザーのシナリオが想定されているわけではありません。バイナリイベント形式により軽量なメッセージの効率的な配信が実現されます。ただし、これによりイベントペイロードをデコードした後に、一部の項目が人間が判読できない形式になり、追加処理が必要になります。たとえば、CreatedDate はエポック時間のため、読みやすくするために他の日付形式に変換できます。
イベントスキーマはバージョン管理されます。つまり、スキーマが変わると、そのスキーマ ID も変わります。イベントスキーマの取得方法の詳細は、「Pub/Sub API によるイベントスキーマの取得」を参照してください。
Pub/Sub API クライアントを記述して、プラットフォームイベントメッセージに登録します。Python、Java、Go、Node など、サポートされている 11 種のプログラミング言語のいずれかを使用できます。
- Java または Python でクライアントを記述する方法については、『Pub/Sub API』開発者ガイドの「Quick Starts (クイックスタート)」で「Python Quick Start (Python クイックスタート)」を参照してください。
- 他の言語のコード例については、Pub/Sub API の GitHub リポジトリを参照してください。