2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Momento Topic を用いてWebhookで Postman Flows を起動する際にJSONを引き渡す

Last updated at Posted at 2024-09-07

今までの記事でPostman Flows 内部の変数の取り扱いやJSONの取り扱い方を纏めてきました。今日はPostman Flowsを外部からWebhook経由で起動する際にJSON Bodyを引き渡す方法を纏めます。

1. Postman Flowsの準備

image.png
新規ボタンを押して、新しいFlowを作成します。
image.png
Add blocksをクリックします。
image.png
Evaluateブロックを選択して適当な場所に配置した後、Startvalue1を矢印でつなげます。
image.png
同じ要領でResultlogをつなげます。
image.png
コードペインでvalue1を記載します。これにより。value1に入力された値が、そのままResultへ出力されます。では次にWebhookエンドポイントをcreateします。
image.png
publishをクリックします。
image.png
画面下のRunボタンを押すとJSONのPOST画面が出てきますので、以下の値を挿入してSendをクリックします。
image.png

{
   "cache":"demo-cache",
   "topic":"test",
   "event_timestamp":1725685493419,
   "publish_timestamp":1725685493419,
   "topic_sequence_number":5,
   "token_id":"",
   "text":"test"
}

この値は後ほど操作するMomento Topicsから送出されるWebhookのJSON Bodyを模したものです。正しく設定されていれば以下のようにログコンソールに値が出力されます。
image.png

では次に進む前にWebhook用URLをコピーしておきます。
image.png

2. Momento Topics の設定

では次にMomento TopicsからWebhookを飛ばす設定を行います。Momento Topicsはデータの一時保管場所としてMomento Cacheを用いますので、まずはCacheを作成します。(すでにCacheおよびTopicsを設定済の方は手順をWebhookの設定までSkipしてください)
Create Cacheをクリックします。
image.png
適当な名前とリージョンを選択してCreateをクリックします。
image.png
出来上がったキャッシュをクリックしてWebhooksをクリックします。
image.png
Create Webhookをクリックします。
image.png
Webhook nameおよびTopic nameに適当な名前を入れます。Topic nameは後ほど使用します。
image.png
Webhook Destinationに先ほどコピーしておいた、Postman Flows用WebhookURLを入力してCreate Webhookをクリックします。

3.Momento Topicsのテスト

これで準備が完了しましたのでテストを行います。
Momento マネージメントコンソールでTopicsをクリックします。
image.png
Topicには先ほどセットしたTopic Nameを入力しSubscribeをクリックします。
image.png
適当な文字列を入力してPublishをクリックします。
image.png
画面左側に以下のようにメッセージが受信されて入れば動作しています。
image.png

4. Postman Flows の動作確認

今までのStepで問題なく動作はしているのですが、Postman Flows側はWebhook経由で起動された際コンソールのログには出力されません。ログはローカル環境で動作しているものを出力するのに対して、Webhook経由で起動するPostman Flows はPostmanクラウドで動作するためです。
ということでPostman Flowsにもう一つMomento Topicsから受け取ったデータをPostするAPIコールを作成します。
まずはhttps://requestcatcher.com/にアクセスして適当な名前を入力します。以下のような待ち受け画面が出れば大丈夫です。
image.png
次に新しいHTTP Requestを設定します。
image.png
以下の画面を見ながらRequest CathcerへのPOSTを作成します。
image.png
送信ボタンを押すと以下のようにリクエストを受信していればOKです。
image.png
必ず保存ボタンを押した後、FlowでSend RequestブロックをResultとつなげます。
image.png
先ほど作成したAPIコールをコレクションから選択し以下のように矢印を2本つなげます。
image.png
完了したら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してください。
image.png
綺麗なメッセージを受信できました。

余談

1.Postman Flowsの費用について
ひと月当たり、5,000クレジットが無料枠として付与されています。
基本的に、ActionブロックやDecisionブロックは1クレジットを消費、AIブロックはモデルに応じて数クレジットを消費します。
参考: https://learning.postman.com/docs/billing/flows-usage/
これはPostmanクラウドでの実行にのみ適応されます。つまりローカルインスタス環境でRunボタンで実行している分には回数制限はありません。

2.コレクションの自動保存について
Postman Flowsで設定可能なAPIコールはコレクションで設定されているもののみです。このためコレクションの画面とFlowの画面を行ったり来たりするのですが、コレクションでの設定内容は保存を押さないと反映されません。保存の押し忘れが発生しがちなのですが以下の全体設定で自動保存モードに切り替えれます。
image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?