前回の記事では、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 については、こちらで確認することができますので、是非参考にしてください。











コメント