0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Logic Apps Tips - BlobからJSONファイルのデータを取り出す手順

0
Posted at

はじめに

すごく久しぶりにLogic Appsでシステム作ってます。
アラート発報のシステムなんですけど、発報に必要な設定をストレージアカウントに入れてあるJSONファイルから取得しようと思ったら、なんかうまくいかなくて・・・。
昔のことを思い出しながら作成した備忘録。

前提

Logic Appとストレージアカウント(Blob)は作成済みとします。
また、Blobのコンテナ内にJSONファイルが格納されているものとします。

下準備(Logic AppsからBlobに安全にアクセスするために)

まず、作成したLogic AppにマネージドIDを用意します。
今回はシステム割り当て済みのマネージドIDを使うことにします。
Logic Apps の左側ペインの「設定」の中にあるIDを選択します。
システム割り当て済みタブをえらび、状態を「ON」にしてください。

image.png

続いて、このマネージドIDに、ストレージアカウントのアクセス権の設定を行います。
ストレージアカウントの左側ペインで「アクセス制御(IAM)」を選択します。
上部にある「追加」から「ロールの割り当ての追加」を選択します。
image.png

まず、ロールを選択します。
「職務ロール」から、ストレージBlobにアクセス可能なロールを選びます。
ここでは「共同作成者」を選択してみます。
その後、画面下部にある「次へ」をクリックします。
image.png

次は選択したロールに割り当てるメンバーを選択します。
Logic AppsのマネージドIDを割り当てたいので、
アクセスの割り当て先を「マネージドID」とします。
「+メンバーを選択する」をクリックしてください。
image.png

右側ペインにいかのような画面が表示されるので、
マネージドIDのプルダウンから「Logic app」を選択します。
image.png

存在するLogic AppsのマネージドIDのリストが表示されるので、該当のマネージドIDを選択します。
image.png

「選択」をクリックしてください。
image.png

メンバーに選択したマネージドIDが追加されたら、
画面下部の「レビューと割り当て」をクリックします。
image.png

確認の画面が表示されるので、「レビューと割り当て」をクリックしてください。
image.png

これで下準備は終了です。

Logic Appの処理

Logic Appでは、以下の手順でJSONファイルのデータを抽出します。
①BLOBからファイルを取得
②取得したデータを文字列に変換
③変換した文字列をJSONデータに変換

BLOBからのファイル取得

まずはBlobからファイルを取得するアクションを追加していきます。

専用のアクション「BLOB コンテンツを取得する (V2)」を追加すると、「新しい接続の作成」を行う必要があります。
ここでは、以下のように認証の種類として「Logic Apps のマネージドID」を選択し、「Create new」をクリックします。
image.png

接続の作成がうまくいくと、以下のような画面に切り替わります。
image.png

取得するBLOB内のファイルを指定するには、「ストレージアカウント名またはBLOBエンドポイント」と「BLOB」を設定する必要があります・・・が、マネージドIDでの接続の場合、「ストレージアカウント名またはBLOBエンドポイント」は手作業で入力する必要があります。
image.png

正しいストレージアカウント名を入力すれば、BLOBの方はフォルダアイコンをクリックするとプルダウンで選択できるようになります。
image.png

これでBlob内のファイルを取得できます。

取得データの文字列変換

この後、取得できたファイルデータを直接JSONデータ変換にかけたいところなのですが(笑)、実はそれだとうまくいきませんでした💦
image.png

一旦、取得したデータ(バイナリデータ)を文字列に変換する必要があります。
今回は、変数の初期化アクションを使って、文字列に変換します。
Nameは任意に入力して下さい。Typeは「String」にします。
Valueには、以下のような関数を設定してください。

image.png

文字列をJSONデータに変換

これはBuilt-inのアクション「Parse JSON」で大丈夫でした。
Contentに前のアクションの出力、SchemaにBlob内ファイルのJSONデータのスキーマを設定します。

実行

これまでで一旦実行してみると、こんな感じにちゃんと変換できました!
image.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?