前回の記事では、Azure Storage Explorer を使用してコンテナーを作成して、画像のアップロードをしてみました。
今回は、コンテナーに画像が追加されたときに動作する Azure Functions を Visual Studio で作成してみます。
対象コンテナーの確認
Visual Studio プロジェクトを作成する前に、どのコンテナーを対象にするのかを確認しておきましょう。
前回インストールをした Azure Storage Explorer を起動したらリソースグループの名称と、コンテナー名称を確認します。ここで確認をしたリソースグループ名とコンテナー名は、プロジェクト作成時に使用します。
Visual Studio で プロジェクトを作成する
はじめに Visual Studio を起動して、新規のプロジェクトを作成します。
続いて、プロジェクト名を入力して [作成]ボタンをクリックします。
次に、作成する Azure Functions の一覧から「Blob trigger」を選択し、ストレージアカウント欄で「参照…」を選択します。
Azure Storage のダイアログが表示されるので、先ほど調べておいたストレージグループを選択し[追加]ボタンをクリックします。
最後に、先ほど調べておいたコンテナー名を入力して[作成]ボタンをクリックします。
Blob trigger の動作確認
まずは、Visual Studio の実行ボタンをクリックします。
ビルドが完了すると、コンソール画面が表示されます。
Azure Storage Explorer を起動して、プロジェクトで指定したコンテナーにファイルをアップロードします。ここでは ScreenShot_33.jpg という画像ファイルをアップロードしてみました。
画像ファイルのアップロードが完了すると、作成した Blob trigger が起動します。ちなみに Blob trriger はファイルを置換(上書き)する際も起動します。
コンソールは以下のようになり、アップロードされたファイル名が出力されていることがわかります。
作成されたコードの確認
Visual Studio に戻って、作成されたコードを確認しましょう。
筆者のコードは以下のようになりました。
using System; using System.IO; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Host; using Microsoft.Extensions.Logging; namespace BlobTriggerFunction { public static class Function1 { [FunctionName("Function1")] public static void Run([BlobTrigger("myblob/{name}", Connection = "")]Stream myBlob, string name, ILogger log) { log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes"); } } }
引数 name でアップロードまたは更新された Blob の名前を取得することができます。
また、引数 myBlob.length で Blob サイズを取得できることがわかります。
おわりに
前編、後編に渡って Azure Blob Storage の作成方法と Blob trigger の作成方法について説明をしました。
特に技術的に難しい部分はなく、アイデア次第で色々と活用ができそうです。
Azure Blob Storage に関する詳細は、こちらで確認することができます。
また Blob trigger については、こちらで確認することができますので、是非参考にしてください。
コメント