BLOB の作成時に Azure 関数を実行する

完了

あなたは写真家で、その日の写真を載せる Web サイトを所有しているとします。 忙しくて、アップロードのスケジュールが一定でないため、写真をアップロードするときにファンに通知したいと考えています。 ご利用の Azure Storage Blob コンテナーにイメージをアップロードするたびに、自動的にツイートを送信する Azure 関数を作成することにします。

ここでは、BLOB トリガーを作成して、ご利用の Azure Storage Blob コンテナー内の特定の場所を監視するようにその BLOB トリガーに指示する方法について説明します。

Azure Storage とは

Azure Storage は、すべての種類のデータ (BLOB、キュー、NoSQL など) をサポートする Microsoft のクラウド ストレージのソリューションです。 Azure Storage の目標は、次のようなデータ ストレージを提供することです。

  • 高可用性
  • セキュリティ保護
  • 拡張性
  • マネージド

ここでは Azure Storage にはあまり焦点を当てません。 代わりに、Azure Storage を使って、関数を実行するようにトリガーする BLOB を作成します。

Azure BLOB Storage とは

Azure BLOB ストレージは、大量の非構造化データを格納するように設計されたオブジェクト ストレージのソリューションです。

たとえば、Azure BLOB ストレージは次の操作に最適です。

  • ファイルを格納する
  • ファイルを提供する
  • ビデオやオーディオをストリーミング配信する
  • データのログを記録する

BLOB には、ブロック BLOB追加 BLOBページ BLOB の 3 種類があります。 ブロック BLOB は最も一般的な種類です。 ブロック BLOB では、テキストやバイナリ データを効率的に格納できます。 追加 BLOB はブロック BLOB に似ていますが、定期的に更新されるログ ファイルの作成など、より追加の操作のために設計されています。 最後に、ページ BLOB はページで構成されており、頻繁なランダムの読み取り/書き込み操作のために設計されています。

BLOB トリガーとは

BLOB トリガーは、Azure BLOB ストレージでファイルをアップロードまたは更新したときに関数を実行するトリガーです。 Functions によってストレージ コンテナーの変更が定期的に確認されるので、多少の待機時間が生じる可能性があります。 BLOB コンテナーに対してトリガーを実行する場合、この待機時間を減らす方法があります。

BLOB トリガーを作成するには、Azure Storage アカウントを作成して、トリガーで監視する場所を指定します。

BLOB トリガーを作成する方法

これまで見てきた他のトリガーと同様に、Azure portal 内で BLOB トリガーを作成できます。 Azure 関数内で、定義済みのトリガーの種類の一覧から [BLOB トリガー] を選択します。 次に、BLOB が作成または更新されたときに実行するロジックを入力します。

理解しておく必要がある重要な設定の 1 つに、[パス] があります。 [パス] には、BLOB がアップロードまたは更新されたかどうかを確認するためにどの BLOB コンテナーを監視するかを BLOB トリガーに示します。 パスの既定値は、次のとおりです。

samples-workitems/{name}

この概念を samples-workitems{name} の 2 つの部分に分割してみましょう。 最初の部分の samples-workitems は、トリガーで監視される BLOB コンテナーを表します。 2 番目の部分の {name} は、どの種類のファイルでも、このトリガーで関数を呼び出せることを意味します。 関数が呼び出されるのは、フィルターがないためです。 たとえば、PNG ファイルが次のような構文を使用して追加される場合にのみ、トリガーで関数を呼び出すことができます。

samples-workitems/{name}.png

この概念の最後の重要な情報は、テキストの name です。 name は、追加されたファイルの名前を受け取る Azure 関数内のパラメーターを表します。 たとえば、resume.txt という名前のファイルをアップロードした場合、自分の Azure 関数では name と呼ばれるパラメーターを介して、文字列としてその値を受け取ります。

Azure Storage Blob アカウントの特定の場所でアクティビティを表示する場合、BLOB トリガーによって Azure 関数が呼び出されます。 Azure portal 内でパスの値を変更して、監視する場所を設定します。