LoginSignup
7
1

More than 1 year has passed since last update.

IBM MQ on Cloud を試してみる

Last updated at Posted at 2022-12-05

使い方メモです。

最近はMQがCloudで使えるんですね。しかもLiteプランがあるので、お試し程度なら無料で使えます。10年以上ぶりに使う機会があったので、IBM MQ on Cloud ライト・プランのお試し方法を説明します。ただこれを書いた時点では日本のロケーションにはサービスがないようでした。

なお、 2022/11/30現在、Liteプラン・サービスには以下の制限があります:

  • 1カ月当たりのメッセージ数の上限は 10,000 件
  • 非アクティブで 30 日経過すると削除されます

0. 前提

  1. IBM Cloudのアカウントがあること
    前提は有効なIBM Cloudのアカウントがあることです。
    お持ちでないかたは こちら でアカウント作成をお願いします。有効なメールアドレスとクレジットカード情報が必要です。
    当記事で紹介する「MQ on Cloudのライト・プラン」を使用の場合は課金されることはありません。間違って他のプランを選択することないようにくれぐれもご注意ください。

  2. 使用可能なAPIKEYがあること
    APIKEYが無い場合は「IBM Cloud APIKEYの作成(取得)方法」を参考に取得しておいてください。
    MQ GET/PUTで使用します。

1. IBM Cloudにログイン

https://cloud.ibm.com よりIBM Cloudにログインします。

2. MQサービスの作成

2.1 「カタログ」をクリック (「リソースの作成」をクリックでもOK)

ダッシュボードが表示されるので、上部のメニューにある「カタログ」をクリックします。「リソースの作成」をクリックでもOKです。
image.png

2.2 「カタログを検索...」 入力フィールドにMQと入れ、表示された「MQ」をクリック

image.png

MQのサービス作成画面が表示されます。
image.png

2.3 詳細の設定

以下を選択または確認します。

  • ロケーションの選択

    • 日本にはないので、適当に近い場所を選びます。そのままダラスでもよいです。
  • 料金プランの選択

    • ライト にチェックがついていることを確認 (チェックがついていない場合はクリックしてチェックする)
    • ライトは1idにつき1つしか作成できませんので、既に作成済みの場合は作成できません。
    • 「MQ on Cloudのライト・プラン」を使用の場合は課金されることはありません。間違って他のプランを選択することないようにくれぐれもご注意ください。
  • リソースの構成: 必要なら更新

  •  そのままでもよいです。リソースリストに表示される名前なので、わかりやすくしたい場合は変更してください。

  • ご利用条件の同意

    • 「作成」ボタンの上のご利用条件を読み、問題ばければ「以下のご利用条件を読み。同意します。」をクリックします。

image.png

2.4 作成をクリック

image.png

しばらくするとMQの詳細画面になるので、これで作成完了です!
image.png

3. キュー・マネージャーの作成

サービスができたらキュー・マネージャーを作成します。

3.1 「キュー・マネージャー」タブの「作成+」をクリックします。

image.png

3.2 「キュー・マネージャー名」に適当な名前を入れて、「作成」をクリックします。

image.png

以下のようなウィンドウが表示された場合は「続行」をクリックします。
image.png

状況が「実行中」になるまで、5分〜10分程度待ちます。
image.png

状況が「実行中」になれば、作成完了です。
image.png

4. キューの作成

4.1 作成したキュー・マネージャー名をクリックします。

image.png

構成が表示されます:
image.png

4.2 「管理」タブをクリックし、「MQコンソールの起動」をクリックします。

image.png

新しいブラウザー画面が立ち上がり、MQコンソールの画面が表示されます。
image.png

4.3 「キューの作成」をクリックします。

image.png

4.4 「ローカル」を選択

image.png

4.5 「キュー名」に適当な名前を記入後、「作成」をクリック

image.png

作成後ホーム画面に戻ります。「qm01の管理」(qm01は作成したキュー・マネージャー名)をクリック。
image.png

キューのタブで、自分の作成したキューが表示されているのを確認します。
image.png

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 エンドポイントの値をコピーして、エディターなどどこかにペーストしておきます。
image.png

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とします。

上のキューマネージャー名の左側の矢印をクリックして、キューマネージャーのリストに戻ります。
image.png

「ユーザー資格情報」タブをクリックします。
image.png

「管理者ユーザー名」を取得します。これがRESTAPIで指定するuseridとなります。
image.png

あとはキュー名と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コンソールの画面」のブラウザーがどこにもない場合は、

MQコンソールのメインの画面の一番左上にあるタイルのメニュー
「xxxxの管理」 (xxxxはキュー・マネージャー名)
をクリックします。
image.png

メッセージの送付先のキューの名前をクリックします:
image.png

送付した日時のタイムスタンプでメッセージがあることを確認します。
image.png

メッセージのタイムスタンプをクリックすると詳細が確認できます。
image.png

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の時確認した情報が残っている場合は、作成ボタンの隣のリロードアイコンをクリックしてください。
image.png

取得したメッセージが削除されたことを確認します。
image.png

以上です。

7
1
1

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
7
1