今までの記事でPostman Flows 内部の変数の取り扱いやJSONの取り扱い方を纏めてきました。今日はPostman Flowsを外部からWebhook経由で起動する際にJSON Bodyを引き渡す方法を纏めます。
1. Postman Flowsの準備
新規
ボタンを押して、新しいFlowを作成します。
Add blocks
をクリックします。
Evaluate
ブロックを選択して適当な場所に配置した後、Start
とvalue1
を矢印でつなげます。
同じ要領でResult
とlog
をつなげます。
コードペインでvalue1
を記載します。これにより。value1
に入力された値が、そのままResult
へ出力されます。では次にWebhookエンドポイントをcreate
します。
publish
をクリックします。
画面下のRun
ボタンを押すとJSONのPOST画面が出てきますので、以下の値を挿入してSend
をクリックします。
{
"cache":"demo-cache",
"topic":"test",
"event_timestamp":1725685493419,
"publish_timestamp":1725685493419,
"topic_sequence_number":5,
"token_id":"",
"text":"test"
}
この値は後ほど操作するMomento Topicsから送出されるWebhookのJSON Bodyを模したものです。正しく設定されていれば以下のようにログコンソールに値が出力されます。
では次に進む前にWebhook用URLをコピーしておきます。
2. Momento Topics の設定
では次にMomento TopicsからWebhookを飛ばす設定を行います。Momento Topicsはデータの一時保管場所としてMomento Cacheを用いますので、まずはCacheを作成します。(すでにCacheおよびTopicsを設定済の方は手順をWebhookの設定までSkipしてください)
Create Cache
をクリックします。
適当な名前とリージョンを選択してCreate
をクリックします。
出来上がったキャッシュをクリックしてWebhooks
をクリックします。
Create Webhook
をクリックします。
Webhook name
およびTopic name
に適当な名前を入れます。Topic name
は後ほど使用します。
Webhook Destination
に先ほどコピーしておいた、Postman Flows用WebhookURLを入力してCreate Webhook
をクリックします。
3.Momento Topicsのテスト
これで準備が完了しましたのでテストを行います。
Momento マネージメントコンソールでTopics
をクリックします。
Topic
には先ほどセットしたTopic Name
を入力しSubscribe
をクリックします。
適当な文字列を入力してPublish
をクリックします。
画面左側に以下のようにメッセージが受信されて入れば動作しています。
4. Postman Flows の動作確認
今までのStepで問題なく動作はしているのですが、Postman Flows側はWebhook経由で起動された際コンソールのログには出力されません。ログはローカル環境で動作しているものを出力するのに対して、Webhook経由で起動するPostman Flows はPostmanクラウドで動作するためです。
ということでPostman Flowsにもう一つMomento Topicsから受け取ったデータをPostするAPIコールを作成します。
まずはhttps://requestcatcher.com/にアクセスして適当な名前を入力します。以下のような待ち受け画面が出れば大丈夫です。
次に新しいHTTP Requestを設定します。
以下の画面を見ながらRequest CathcerへのPOSTを作成します。
送信ボタンを押すと以下のようにリクエストを受信していればOKです。
必ず保存ボタンを押した後、FlowでSend Request
ブロックをResult
とつなげます。
先ほど作成したAPIコールをコレクションから選択し以下のように矢印を2本つなげます。
完了したらWebhookのPublish
を再度クリックした後、もう一度Momento Topicsでメッセージを送出します。
POST /?value1={%22cache%22:%22test%22,%22topic%22:%22test%22,%22event_timestamp%22:1725692637494,%22publish_timestamp%22:1725692637494,%22topic_sequence_number%22:5,%22token_id%22:%22%22,%22text%22:%22b%22}
%22
は改行の文字コードですがこの状態では見づらいのでFlowのEvaluate
ブロックで少し修正します。
value1
の部分をvalue1.text
に変更して再度Publishしてください。
綺麗なメッセージを受信できました。
余談
1.Postman Flowsの費用について
ひと月当たり、5,000クレジットが無料枠として付与されています。
基本的に、ActionブロックやDecisionブロックは1クレジットを消費、AIブロックはモデルに応じて数クレジットを消費します。
参考: https://learning.postman.com/docs/billing/flows-usage/
これはPostmanクラウドでの実行にのみ適応されます。つまりローカルインスタス環境でRun
ボタンで実行している分には回数制限はありません。
2.コレクションの自動保存について
Postman Flowsで設定可能なAPIコールはコレクションで設定されているもののみです。このためコレクションの画面とFlowの画面を行ったり来たりするのですが、コレクションでの設定内容は保存
を押さないと反映されません。保存
の押し忘れが発生しがちなのですが以下の全体設定で自動保存モードに切り替えれます。