特集
» 2017年09月22日 05時00分 公開

特集: Visual Studio 2017で始めるAzure Functions開発:Azure Functionsプロジェクト開発の基本的な流れ (3/3)

[かわさきしんじ,Insider.NET編集部]
前のページへ 1|2|3       

関数のデバッグ実行

 [F5]キーを押すなどしてデバッグ実行を始めると、次のようなウィンドウが表示される(あるいはAzure Functions Core Toolsのダウンロードとインストールを行うようにいわれるかもしれない。そのときにはこれをダウンロード、インストールする必要がある)。

Azure Functions用のコマンドラインツールが起動して、関数のデバッグ実行が開始されたところ Azure Functions用のコマンドラインツールが起動して、関数のデバッグ実行が開始されたところ

 また、次のようにファイアウォールでコマンドラインツールに許可を与える必要もあるかもしれない。

Azure Functions Core Toolsの通信を許可する Azure Functions Core Toolsの通信を許可する

 デバッグ実行を開始したら、先ほど見たBLOBコンテナの内容を一覧するウィンドウでファイルのアップロードを行ってみよう。ウィンドウ上部の[BLOB のアップロード]ボタン(上向きの矢印)をクリックすると、以下に示すダイアログが表示されるので、何か適当なファイルを選択し、[OK]ボタンをクリックする。

[新しいファイルのアップロード]ダイアログ [新しいファイルのアップロード]ダイアログ

 アップロードが終わると、ウィンドウの表示が次のように変わる。

アップロードしたファイルが表示される アップロードしたファイルが表示される

 そして、Azure Functionsのコマンドラインツールには次のように関数の実行が始まったこと、関数を実行した結果(ファイル名とファイルサイズの表示)、関数の実行が終了したことが表示される。

初めての関数呼び出しの実行結果 初めての関数呼び出しの実行結果

デバッグできないとき

 Azure Functionsプロジェクトをデバッグ実行しようとすると、「HTTP が URL http://localhost:7071/ を登録できませんでした」といったメッセージが表示され、デバッグ実行を行えないときがある。これはデバッグで使用するローカルホストの7071ポートが既に登録済みとなっていることが原因で発生する。これを回避するには管理者としてコマンドプロンプトを起動して「netsh http delete urlacl url=http://+:7071/」を実行するとよい。あるいはlocal.settings.jsonファイルで使用するポートを変更してもよい。


 もちろん、ブレークポイントを設定して、各種パラメーターの値を確認するといったことも可能だ。ただし、本稿ではプロジェクトテンプレートから生成されたコードのままなので、これについては割愛する。

 最後に、作成したAzure FunctionsプロジェクトをAzureに発行する手順を見てみよう。

Azure Functionsプロジェクトの発行

 Azure FunctionsプロジェクトをAzureに発行するには、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[発行]を選択する。すると、次のようなウィンドウが表示される。

[発行]ウィンドウ [発行]ウィンドウ

 ここで[Azure 関数アプリ]と[新規作成]ラジオボタンを選択して、[発行]ボタンをクリックしよう(既にAzureポータルなどでAzure Functionsアプリを作成している場合は[既存のものを選択]ラジオボタンを選択してもよいが、本稿では新規に作成することにしよう)。[発行]ボタンをクリックすると、次のようなダイアログが表示される。

[App Services の作成]ダイアログ [App Services の作成]ダイアログ

 アプリの名前、使用するAzureのサブスクリプション、アプリを作成するリソースグループ、課金プラン、ストレージアカウントを設定して、[作成]ボタンをクリックすると、発行の処理が開始される。

 発行したAzure FunctionsアプリはAzureポータルからも確認できる。例えば、以下はAzureへの発行後にファイルをストレージアカウントにファイルをアップロードしたところだ。ウィンドウ下部の[ログ]に「C# Blob trigger function Processed blob」と表示され、その下にファイル名とファイルサイズが続いていることから、この関数が正常に実行されたことが分かる。

Azureポータルに発行されたAzure Functionsアプリ Azureポータルに発行されたAzure Functionsアプリ

 [ログ]の上に表示されているのは、このアプリの構成情報を記したfunction.jsonファイルだ(現在は読み取り専用となっているのでグレーで表示)。その内容を以下に示す。

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "blobTrigger",
      "connection": "AzureWebJobsStorage",
      "path": "samples-workitems/{name}",
      "name": "myBlob"
    }
  ],
  "disabled": false,
  "scriptFile": "..\\bin\\FunctionApp1.dll",
  "entryPoint": "FunctionApp1.Function1.Run"
}


function.jsonファイル

 種類が[Blob trigger]で、接続文字列にはAzureWebJobsStorageに指定したものが使われ、BLOBコンテナには「samples-workitems」が使われることなど、これまでに見てきた設定と同様なものが記述されていることが分かるはずだ。


 今回はVS 2017を使って、BLOBコンテナへのファイルアップロードをトリガーとして実行される関数を例に、Azure Functionsプロジェクトの新規作成からデバッグ実行、Azureへの発行までの流れを見た。次回はAzure Functionsが提供する強力な「バインド」機能を取り上げる。

「特集: Visual Studio 2017で始めるAzure Functions開発」のインデックス

特集: Visual Studio 2017で始めるAzure Functions開発

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。