AzureBlobGetを使用してMicrosoft Azure Storage のデータを取得する

Microsoft Azure Storageで登録したファイルを活用するにはどうすればよいでしょうか?

AzureBlobGetコンポーネントを使用すれば簡単にMicrosoft Azure Storageのファイルを取得することができます。取得するMicrosoft Azure Storageのファイルは、ストレージブラウザと呼ばれるダイアログを使って簡単に設定できます。

この記事では、AzureBlobGetコンポーネントの基本的な使用方法を次の順で説明します。

上記のステップを説明するために、Microsoft Azure Storageにsample-containerという名前のコンテナがあるとします。sample-containerにはsample-folderというフォルダーがあり、そのなかにmp4ファイルやCSVファイルがあります。

それでは、AzureBlobGetコンポーネントを使用して、sample-containerに格納されているファイルを取得してみましょう。

AzureBlobGetコンポーネントを配置する

フローデザイナーの左下にあるコネクションペインでAzureStorageコネクションを作成します。AzureStorageコネクションの作成方法については、AzureStorageコネクションの作成を参照してください。作成したAzureStorageコネクションをワークスペースにドロップして表示されるリストからAzureBlobGetコンポーネントを追加します。

バイナリファイルの取得

まずは、sample-containerからバイナリファイルを取得してみましょう。

最初にAzureBlobGetコンポーネントをダブルクリックしてストレージブラウザを開きます。その後、ストレージブラウザの左上のペインで"sample-container"を選択します。

ファイルを取得するには、取得したいファイルを選択します。ここでは"sample-folder/20240801_Seminar.mp4"を選択します。

ストレージブラウザの下側にある「選択」をクリックすると、ストレージブラウザで設定した内容が保存されます。そして、AzureBlobGetコンポーネントのプロパティに選択したコンテナ名、Blob名が自動的に設定されます。

今回は、取得したファイルをローカルのフォルダへ出力する、次のようなフローを作成してみました。

Mapperコンポーネントでは、まず最初に、AzureBlobGetコンポーネントで取得したファイルの内容を変更せずにFilePutコンポーネントに渡すために、Mapperコンポーネントのプロパティ「入力をそのまま出力」を"はい"に設定します。

上記のMapperコンポーネントをダブルクリックして、左側のAzureBlobGetコンポーネントの「Blob名」プロパティを右側のFilePutコンポーネントの「ファイルパス」プロパティにマッピングし、Blob名をそのままファイルパスとして使用するように設定します。

フローを実行すると、ユーザーのホームフォルダの下に”sample-folder"フォルダーが作成され、その中に"20240801_Seminar.mp4"という名前でファイルが出力されました。出力されたファイルは、ファイルペインで確認できます。

メタデータの取得

AzureBlobGetコンポーネントを使用して、メタデータを取得することもできます。下記は、20240801_Seminar.mp4ファイルのメタデータです。「キー」に"comment"、「値」に"社内利用に限る"が設定されています。

取得したメタデータを表示する、次のようなフローを作成してみました。AzureBlobGetコンポーネントは、先ほどと同様に"sample-container"の"20240801_Seminar.mp4"を設定しています。

メタデータを取得するために、AzureBlobGetコンポーネントのインスペクタで、「メタデータ」タブの「Name」にメタデータのキー"comment"を設定します。「Type」は、ここでは"String"と設定します。

AzureBlobGetコンポーネントの直後に配置したMapperコンポーネントをダブルクリックして、左側のAzureBlobGetコンポーネントの「メタデータ」-「comment」を右側の「Object」にマッピングします。

フローを実行すると、メタデータ「comment」に設定されている値「社内利用に限る」が表示されていることが確認できます。

CSVファイルの取得

次に、CSVファイルを取得して、CSVデータの処理をしてみましょう。バイナリファイルの時と同様に、AzureBlobGetコンポーネントをダブルクリックしてストレージブラウザを開き、CSVファイルを選択します。ここでは"sample-folder/202406_SalesResults.csv"を選択します。

今回のファイルは、販売実績ファイルとなっており、データは以下のとおりです。

2024-06-02,タブレットA,3,30000
2024-06-08,4Kモニター,2,40000
2024-06-12,ワイヤレスヘッドフォン,8,15000
2024-06-19,スマートウォッチZ,5,25000
2024-06-28,デジタルカメラ,4,80000

AzureBlobGetコンポーネントの次にEndResponseコンポーネントを接続して次のようなシンプルなフローを作成してみました。

AzureBlobGetのストリームペインで、「日付」「商品名」「個数」「単価」のフィールドを設定しています。

フローを実行すると、次のようにデータが出力されていることが確認できます。

CSVファイルをすべて取得

先ほどと同様にAzureBlobGetコンポーネントの次にEndResponseコンポーネントを接続して次のようなシンプルなフローを作成してみました。

今回は、ストレージブラウザを使わずに「コンテナ名」プロパティに”sample-container”を直接入力します。また、フォルダー内のすべてのCSVファイルを取得するために「Prefix」プロパティに"sample-folder/"というフォルダーパスを入力し、フォルダー内のすべてのCSVファイルにマッチさせるために、「Blob名」プロパティに正規表現パターンの".*\.csv$"を入力します。この正規表現は、「1文字以上の任意の名前で、.csvで終わるファイル名に一致する」という意味です。

フローを実行するとファイル名が .csv で終わるファイルをすべて取得します。取得したすべてのファイルはEndResponseで内容がまとめられて、下の図のように表示されるのを確認できます。

ファイルをループ処理する

複数のファイルを処理する際、各ファイルを1つずつ処理するには「ループを開始」プロパティに”はい"を設定します。AzureBlobGetコンポーネントの各ループでは、取得対象のファイルのデータを1ファイルずつ出力します。

取得するファイルの件数指定

取得するファイルの数の最大数を設定するには、「最大取得件数」プロパティを設定します。下記は、「最大取得件数」プロパティに2を設定し、最大2ファイル取得する設定になります。

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する