使い方メモです。
最近はMQがCloudで使えるんですね。しかもLiteプランがあるので、お試し程度なら無料で使えます。10年以上ぶりに使う機会があったので、IBM MQ on Cloud ライト・プランのお試し方法を説明します。ただこれを書いた時点では日本のロケーションにはサービスがないようでした。
なお、 2022/11/30現在、Liteプラン・サービスには以下の制限があります:
- 1カ月当たりのメッセージ数の上限は 10,000 件
- 非アクティブで 30 日経過すると削除されます
0. 前提
-
IBM Cloudのアカウントがあること
前提は有効なIBM Cloudのアカウントがあることです。
お持ちでないかたは こちら でアカウント作成をお願いします。有効なメールアドレスとクレジットカード情報が必要です。
当記事で紹介する「MQ on Cloudのライト・プラン」を使用の場合は課金されることはありません。間違って他のプランを選択することないようにくれぐれもご注意ください。 -
使用可能なAPIKEYがあること
APIKEYが無い場合は「IBM Cloud APIKEYの作成(取得)方法」を参考に取得しておいてください。
MQ GET/PUTで使用します。
1. IBM Cloudにログイン
https://cloud.ibm.com よりIBM Cloudにログインします。
2. MQサービスの作成
2.1 「カタログ」をクリック (「リソースの作成」をクリックでもOK)
ダッシュボードが表示されるので、上部のメニューにある「カタログ」をクリックします。「リソースの作成」をクリックでもOKです。
2.2 「カタログを検索...」 入力フィールドにMQ
と入れ、表示された「MQ」をクリック
2.3 詳細の設定
以下を選択または確認します。
-
ロケーションの選択
- 日本にはないので、適当に近い場所を選びます。そのままダラスでもよいです。
-
料金プランの選択
- ライト にチェックがついていることを確認 (チェックがついていない場合はクリックしてチェックする)
- ライトは1idにつき1つしか作成できませんので、既に作成済みの場合は作成できません。
- 「MQ on Cloudのライト・プラン」を使用の場合は課金されることはありません。間違って他のプランを選択することないようにくれぐれもご注意ください。
-
リソースの構成: 必要なら更新
-
そのままでもよいです。リソースリストに表示される名前なので、わかりやすくしたい場合は変更してください。
-
ご利用条件の同意
- 「作成」ボタンの上のご利用条件を読み、問題ばければ「以下のご利用条件を読み。同意します。」をクリックします。
2.4 作成をクリック
しばらくするとMQの詳細画面になるので、これで作成完了です!
3. キュー・マネージャーの作成
サービスができたらキュー・マネージャーを作成します。
3.1 「キュー・マネージャー」タブの「作成+」をクリックします。
3.2 「キュー・マネージャー名」に適当な名前を入れて、「作成」をクリックします。
以下のようなウィンドウが表示された場合は「続行」をクリックします。
状況が「実行中」になるまで、5分〜10分程度待ちます。
↓
状況が「実行中」になれば、作成完了です。
4. キューの作成
4.1 作成したキュー・マネージャー名をクリックします。
4.2 「管理」タブをクリックし、「MQコンソールの起動」をクリックします。
新しいブラウザー画面が立ち上がり、MQコンソールの画面が表示されます。
4.3 「キューの作成」をクリックします。
4.4 「ローカル」を選択
4.5 「キュー名」に適当な名前を記入後、「作成」をクリック
作成後ホーム画面に戻ります。「qm01の管理」(qm01は作成したキュー・マネージャー名)をクリック。
キューのタブで、自分の作成したキューが表示されているのを確認します。
5. REST APIでPUT/GETしてみる
では作成したキューにメッセージをPutしてGetしてみましょう。
curlで呼べるREST APIを使用します。
詳細の参考: Messaging using the REST API
5.1 必要情報の取得
REST APIを使う際に必要な情報を取得します。
「4.2 「管理」タブをクリックし、「MQコンソールの起動」をクリックします。」で表示されていた、
リソースリスト→MQサービス名をクリック→Manage→[キューマネージャー名をクリック]の画面を表示します。
「構成」タブをクリックし、メッセージングの REST エンドポイント
の値をコピーして、エディターなどどこかにペーストしておきます。
Note:
この内容は以下のようになっています:
https://xxxxx.qm.xxxxx.mq.appdomain.cloud/ibmmq/rest/v3/messaging/qmgr/qm01/queue/<queue_name>/message
xxxxx.qm.xxxxx.mq.appdomain.cloud
はホスト名です。以下のような組み合わせになっています:
https://「ホスト名」/ibmmq/rest/v3/messaging/qmgr/「キューマネージャー名」/queue/「キュー名」/message
「ホスト名」と「キューマネージャー名」は既に入っているので、キュー名(
<queue_name>
の部分)のみ書き換えてREST Endpointとします。
上のキューマネージャー名の左側の矢印をクリックして、キューマネージャーのリストに戻ります。
「管理者ユーザー名」を取得します。これがRESTAPIで指定するuserid
となります。
あとはキュー名とAPIKEY(「0. 前提」で準備)が必要です。
まとめると以下の情報を準備してください:
- メッセージングの REST エンドポイント
- userid (管理者ユーザー名)
- キュー名
- APIKEY
5.2 メッセージのPUT
RESTAPI URLを以下で組み立てます:
- 「メッセージングの REST エンドポイント」の値の<queue_name>
の部分を自分のキュー名に置き換える
例:<queue_name>
の部分をq1
で置き換え
https://xxxxxx.qm.au-syd.mq.appdomain.cloud/ibmmq/rest/v1/messaging/qmgr/qm01/queue/q1/message
curlコマンド:
curl -X POST <<RESTAPI URL>> \
-u <<userid>>:<<APIKEY>> \
-H "Content-Type: text/plain" \
-H "ibm-mq-rest-csrf-token: value" \
--data "Hello MQ!"
コマンド例:
curl -X POST https://xxxxxx.qm.au-syd.mq.appdomain.cloud/ibmmq/rest/v3/messaging/qmgr/qm01/queue/q1/message \
-u xxxxxx:yyyyyyyyyyyyyy \
-H "Content-Type: text/plain;charset=utf-8" \
-H "ibm-mq-rest-csrf-token: value" \
--data "Hello MQ!"
Putが成功した場合は何のMessageもなく静かに終わります。。。。
5.3 MQコンソールでメッセージのPUTの確認
MQコンソールで確認します。
MQコンソールは、「4. キューの作成」で使ってます。既に「MQコンソールの画面」のブラウザーがどこにもない場合は、
- 「4.1 作成したキュー・マネージャー名をクリックします。」から
- 「4.2 「管理」タブをクリックし、「MQコンソールの起動」をクリックします。」
まで実行して、MQコンソールの画面を表示します。
MQコンソールのメインの画面の一番左上にあるタイルのメニュー
「xxxxの管理」 (xxxxはキュー・マネージャー名)
をクリックします。
送付した日時のタイムスタンプでメッセージがあることを確認します。
メッセージのタイムスタンプをクリックすると詳細が確認できます。
5.4 メッセージのGET
RESTAPI URLを以下で組み立てます(PUTと同じです):
- 「メッセージングの REST エンドポイント」の値の<queue_name>
の部分を自分のキュー名に置き換える
例:<queue_name>
の部分をq1
で置き換え
https://xxxxxx.qm.au-syd.mq.appdomain.cloud/ibmmq/rest/v1/messaging/qmgr/qm01/queue/q1/message
curlコマンド:(メソッドはDELETEです)
curl -X DELETE <<RESTAPI URL>> \
-u <<userid>>:<<APIKEY>> \
-H "ibm-mq-rest-csrf-token: value"
コマンド例:
$curl -X DELETE https://xxxxxx.qm.au-syd.mq.appdomain.cloud/ibmmq/rest/v1/messaging/qmgr/qm01/queue/q1/message \
-u xxxxx:yyyyyyyyyyyyyyyy \
-H "ibm-mq-rest-csrf-token: value"
Hello MQ!
GETしたメッセージが表示されます。
この方法でメッセージを取得するとキューから削除されます。
5.3 MQコンソールでメッセージのGETの確認
MQコンソールで確認します。
PUTの時確認した情報が残っている場合は、作成ボタンの隣のリロードアイコンをクリックしてください。
以上です。