Blob Storage でトリガーされる Azure 関数の作成

Blob Storage コンテナーでファイルをアップロードしたり、更新したりするときにトリガーされる関数の作成方法について説明します。

前提条件

  • Azure サブスクリプション。 お持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure Function App の作成

  1. Azure portal のメニューまたは [ホーム] ページから [リソースの作成] を選択します。

  2. [新規] ページで、 [計算]>、 [関数アプリ] の順に選択します。

  3. [基本] ページで、下の表に指定されている関数アプリの設定を使用します。

    設定 推奨値 説明
    サブスクリプション 該当するサブスクリプション 新しい関数アプリを作成するサブスクリプション。
    リソース グループ myResourceGroup 関数アプリを作成する新しいリソース グループの名前。
    関数アプリ名 グローバルに一意の名前 新しい Function App を識別する名前。 有効な文字は、a-z (大文字と小文字の区別をしない)、0-9、および -です。
    発行 コード コード ファイルまたは Docker コンテナーの発行オプション。
    ランタイム スタック 優先言語 お気に入りの関数プログラミング言語をサポートするランタイムを選択します。 ポータル内編集は、JavaScript、PowerShell、TypeScript、および C# スクリプトでのみ利用できます。 C# クラス ライブラリ、Java、Python の関数はローカルで開発する必要があります。
    Version バージョン番号 インストールされているランタイムのバージョンを選択します。
    リージョン 優先リージョン 自分の近く、または関数がアクセスできる他のサービスの近くのリージョンを選択します。
  4. [次へ :ホスティング] を選択します。 [ホスティング] ページで、次の設定を入力します。

    設定 推奨値 説明
    ストレージ アカウント グローバルに一意の名前 Function App で使用されるストレージ アカウントを作成します。 ストレージ アカウント名は、3 文字から 24 文字までの長さにし、数字と小文字のみを使用する必要があります。 既存のアカウントを使用することもできますが、ストレージ アカウントの要件を満たしている必要があります。
    オペレーティング システム Windows オペレーティング システムは、ランタイム スタックの選択に基づいてあらかじめ選択されますが、必要に応じて設定を変更できます。 ポータルでの編集は Windows でのみサポートされます。
    プラン 従量課金プラン (サーバーレス) Function App にどのようにリソースが割り当てられるかを定義するホスティング プラン。 既定の [従量課金プラン] では、リソースは関数の必要に応じて動的に追加されます。 このサーバーレスのホスティングでは、関数が実行された時間にのみ課金されます。 App Service プランで実行する場合は、関数アプリのスケーリングを管理する必要があります。
  5. [次へ :監視] を選択します。 [監視] ページで、次の設定を入力します。

    設定 推奨値 説明
    Application Insights Default 最も近いサポートされているリージョン内に同じアプリ名の Application Insights リソースを作成します。 この設定を展開するか、[新規作成] を選択して、Application Insights 名を変更するか、データを保存する Azure 地域内の別のリージョンを選択できます。
  6. [確認および作成] を選択して、アプリ構成の選択内容を確認します。

  7. [確認および作成] ページで設定を確認して、 [作成] を選択し、関数アプリをプロビジョニングしてデプロイします。

  8. ポータルの右上隅の [通知] アイコンを選択し、"デプロイメントに成功しました" というメッセージが表示されるまで待ちます。

  9. [リソースに移動] を選択して、新しい Function App を確認します。 また、 [ダッシュボードにピン留めする] を選択することもできます。 ピン留めすると、ダッシュボードからこの関数アプリ リソースに戻るのが容易になります。

    Screenshot of deployment notification.

これで、新しい関数アプリを作成できました。

Function app successfully created.

次に、新しい Function App で関数を作成します。

Azure Blob Storage でトリガーされる関数の作成

  1. [関数] を選択し、 [+ 追加] を選択して、新しい関数を追加します。

    Choose a Function template in the Azure portal.

  2. Azure Blob Storage トリガー テンプレートを選択します。

  3. 画像の下の表に指定した設定を使用してください。

    Name and configure the Blob storage triggered function.

    設定 推奨値 説明
    新規関数 Function App 内で一意 この BLOB によってトリガーされる関数の名前。
    パス samples-workitems/{name} 監視されている Blob Storage ストレージ内の位置。 Blob のファイル名は、name パラメーターとしてバインディングで渡されます。
    ストレージ アカウント接続 AzureWebJobsStorage Function App によって既に使用されているストレージ アカウント接続を使用するか、新しく作成できます。
  4. 関数を作成するには [関数を作成する] を選択します。

    Create the Blob storage triggered function.

次に、samples-workitems コンテナーを作成します。

コンテナーの作成

  1. 関数の [概要] ページで、リソース グループを選択します。

    Select your Azure portal resource group.

  2. リソース グループのストレージ アカウントを見つけて、選択します。

    Access the storage account.

  3. [コンテナー] を選択し、 [+ コンテナー] を選択します。

    Add container to your storage account in the Azure portal.

  4. [名前] フィールドに「samples-workitems」と入力して、 [作成] を選択します。

    Name the storage container.

Blob コンテナーが用意されているので、このコンテナーにファイルをアップロードすることによって、関数をテストできます。

関数をテストする

  1. Azure Portal に戻り、関数を参照して、ページ下部の [ログ] を展開して、ログ ストリーミングが一時停止していないことを確認します。

    Expand the log in the Azure portal.

  2. 別のブラウザー ウィンドウで、Azure portal のリソース グループに移動して、ストレージ アカウントを選択します。

  3. [コンテナー] を選択し、samples-workitems コンテナーを選択します。

    Go to your samples-workitems container in the Azure portal.

  4. [アップロード] を選択し、フォルダー アイコンを選択して、アップロードするファイルを選択します。

    Upload a file to the blob container.

  5. 画像ファイルなど、ローカル コンピューター上のファイルを参照して、そのファイルを選択します。 [開く][アップロード] の順に選択します。

  6. 関数ログに戻り、Blob が読み取られたことを確認します。

    View message in the logs.

    Note

    既定の従量課金プランで Function App を実行する場合、Blob が追加されたり更新されてから関数がトリガーされるまで、最高数分間の遅延が生じることがあります。 Blob でトリガーされた関数で待機時間を短くする必要がある場合は、App Service プランで Function App を実行することを検討してください。

リソースをクリーンアップする

このコレクションの他のクイックスタートは、このクイックスタートに基づいています。 クイック スタート、チュートリアル、またはこのクイック スタートで作成したサービスのいずれかでの作業を引き続き行う場合は、リソースをクリーンアップしないでください。

Azure の "リソース" とは、関数アプリ、関数、ストレージ アカウントなどのことを指します。 これらは "リソース グループ" に分類されており、グループを削除することでグループ内のすべてのものを削除できます。

これらのクイックスタートを完了するためにリソースを作成しました。 アカウントの状態サービスの価格によっては、これらのリソースに対して課金される可能性があります。 リソースの必要がなくなった場合にそれらを削除する方法を、次に示します。

  1. Azure Portal で、 [リソース グループ] ページに移動します。

    関数アプリ ページからこのページに移動するには、[概要] タブを選択し、[リソース グループ] の下にあるリンクを選択します。

    Screenshot that shows select the resource group to delete from the function app page.

    ダッシュボードからこのページに移動するには、 [リソース グループ] を選択してから、この記事用に使用したリソース グループを選択します。

  2. [リソース グループ] ページで、含まれているリソースの一覧を確認し、削除するものであることを確認します。

  3. [リソース グループの削除] を選択し、指示に従います。

    削除には数分間かかることがあります。 実行されると、通知が数秒間表示されます。 ページの上部にあるベルのアイコンを選択して、通知を表示することもできます。

次のステップ

Blob Storage で Blob が追加または更新されたときに実行する関数を作成しました。 Blob Storage トリガーの詳細については、「Azure Functions における Blob Storage バインディング」を参照してください。

最初の関数を作成した後は、メッセージを Storage キューに書き込む出力バインディングをこの関数に追加しましょう。