Logic Apps Tips - Azure Blob Storageへの保存


概要

2つのAzure Logic Appsで、Azure Blob Storageのデータをやり取りするシステムをつくることになって、
ちょっと悩んで調べたことの備忘録

悩んだこと

片方のLogic AppsでBlob Storage内にブロックBlobを作成し、
もう一つのLogic Appsで作成されたブロックBlobの中身を使って処理をするシステムなんですが、
作成と取得にどのアクションを使うのかという点です。

Blobのコンテンツ作成のアクションが二つある

Logic Apps で使用できるAzure Blob Storage用のアクションの情報は、
Docs - Azure Blob Storage内に記載があります。

Blob Storageのコンテナー内にコンテンツを作成するアクションは
・BLOB を作成する (V2)
・ブロック BLOB を作成する (V2)
の二つがあります。
どちらでもブロックBlobを作成できるのですが、
どちらも指定するパラメータが一緒で、どちらを使えばいいのか悩ましいですね。

この二つのアクションの違いは、
戻り値(応答)として、BlobMetadataが返されるかという点です。

このBlobMetadataには、生成されたBlobのメタデータが含まれています。

Blobのコンテンツを取得するアクションも二つある

Blob Storageのコンテナー内のコンテンツを取得するアクションは
・BLOB コンテンツを取得する (V2)
・パスを使用して BLOB コンテンツを取得する (V2)
の二つがあります。

見た目はこんな感じ。

もちろんどちらでもコンテンツの取得が可能なのです。
ただ、「Blobコンテンツを取得する」アクションの方は、
UIのBLOB欄にコンテンツの「ID」を指定します。
このID、変数等を使って直接指定する場合、どうやって取得するのか?という話なんですが、
コンテンツを作成したときに使用したアクションの戻り値であるBlobMetadataに入っています。
⇒それ以外でどうやって取得するのかは調べきれてないです(汗)。

どちらのアクションを使う方は、システムによって違うかとは思いますが、
検討する際に上記の指定方法を踏まえたうえで、実現方法を検討しないとですね。

そして、「パスを使用してBlobコンテンツを取得する」アクションの方は、
パスを変数等を使って指定する場合、フルパスじゃなくて相対パスを記述するようにします。

/(コンテナ名)/(コンテンツ名)