0
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?

[LogicApps]ServiceBusメッセージの取得方法(application/json)

Posted at

背景

メッセージングサービスAzureServiceBusを使用して、メール送信機能をAzureLogicApps(メッセージングキュートリガー)で開発してみました。
メッセージングキュー実行したとき、AzureLogicApps側でjsonメッセージを受け取る実装で苦労したので、ここにメモしておきます。

システム構成

システム構成図_1.png

前提条件

  1. AzureServiceBusでキューを作成する(Basicプラン)
  2. 1.で作成したキューにエンキューするjsonのフォーマットのサンプルを下記とする
  3. AzureLogicAppsトリガーに「Connect to Azure Service Bus to send and receive messages.」を設定する
  4. 1.で作成したキューにキュータイプ「application/json」とし、2.で記載したjsonファイルと同じフォーマットで送信する
  5. 4.でメッセージがキューに送信された後、3.で作成したLogicAppsフローが実行される

上記2.のjsonファイルサンプル

{
  "Receiver": "送信したいメールアドレス",
  "Subjects": "送信メール標題",
  "Contents": "送信メール内容1<br>送信メール内容2"
}

AzureLogicApps側実装ポイント

  1. 「triggerBody()?」でメッセージングしたメッセージを取得する。キー「ContentData」にメッセージングしたJsonファイルの中身が格納されている
  2. メッセージは、AzureLogicApps側にBase64形式で渡されるため、「Base64String(triggerBody()?['ContentData'])」でBase64形式を文字列に変換する
    base64ToString_1_1_マスク_投稿.png
    base64ToString_1_2_マスク_投稿.png
  3. 2.で変換した文字列をJson形式に整形する
    ※上記「前提条件」のjsonファイルフォーマットで実行すると、余分な改行コードが入るため、除去する必要がある。そのため、「replace(replace(replace(2.で取得したデータ,'\r\n',''),'\n',''),'\r',''))」などで置換する
  4. 「json(3.で変換したjson文字列)」でjson文字列からjsonオブジェクトを取得する
    base64ToString_2_1_マスク_投稿.png
    base64ToString_2_2_マスク_投稿.png
  5. 「4.で作成したjsonオブジェクト.キー(4.で作成したjsonオブジェクト.Receiverなど)」で文字列を取得する
    JsonKey_1_1_マスク_投稿.png
    JsonKey_1_2_マスク_投稿.png

まとめ

AzureServiceBusを使用すれば、分離されたシステムとの非同期連携が可能になり、AzureLogicApps、AzureFunctionsをはじめ、様々なAzureサービスのトリガーとして使用でき、便利であると感じました。
AzureLogicApps側の実装手順で様々なコネクター、アクションがあり、慣れていない部分があるため、今後とも根気強く遊んでいきます。
次は、AzureLogicAppsのトリガーをHTTPトリガーにし、AzureManagementAPIなどを使用し、メッセージングキュー実行ではなく、API実行でも遊んでみたいです。

記事一読いただきありがとうございます。上記改善点などご指摘あれば、コメントいただけると幸いです。いいと思った方はいいねいただけると幸いです。定期的に記事を更新していこうと思いますので、引き続きよろしくお願いします。

0
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
0
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?