前回の記事では、Azure Portal から Azure Functions を作成しました。
今回は Visual Studio から HTTP トリガーで動作する Azure Functions を作成する方法について説明をします。
なお、本記事は Microsoft Docs の「Azure Portal で初めての関数を作成する」を参考にしています。
プロジェクトの作成
それでは、早速 Visual Studio を起動して、プロジェクトを作成します。
以下の画面で「Azure」を選択し、一覧から「Azure Functions」を選択し、[次へ]ボタンをクリックします。
続いて「プロジェクト名」を入力し(この例では HttpTriggerAction としました)、[作成]ボタンをクリックします。
次に、一覧で「HTTP trigger」を選択して、Authentication level で「Anonymous」を選択し、[作成]ボタンをクリックします。
しばらくすると、コードが表示されます。
作成されたソースコードを以下に示します。
using System; using System.IO; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; namespace HttpTriggerAction { public static class Function1 { [FunctionName("Function1")] public static async Task Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string name = req.Query["name"]; string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); name = name ?? data?.name; string responseMessage = string.IsNullOrEmpty(name) ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response." : $"Hello, {name}. This HTTP triggered function executed successfully."; return new OkObjectResult(responseMessage); } } }
Azure Functions のデバッグ
ここでは、Azure Portal に配置せずに Visual Studio からデバッグをする方法について説明します。
※あくまでもローカルマシン上での実行であり、Azure 上で動作するわけではありませんので注意してください。
はじめに、Visual Studio のツールバーで [実行] ボタンをクリックします。
以下のように「Windows セキュリティの重要な警告」が表示された場合は [アクセスを許可する] ボタンをクリックします。
プロジェクトの実行が開始されると、次のようにコンソールが表示され、HTTP trigger のURL が表示されます。
ブラウザを起動して、先ほど取得した URL + 「?name=HIRO」のように入力をすると、 HTTP trigger が実行されて結果が表示されます。
実行を停止するには、先ほどの黒い画面で [Ctrl]+[C]キーを入力します。
Azure へのデプロイ
Azure Functions のデバッグが完了したら、Azure Portal へのデプロイをしましょう。
プロジェクトエクスプローラーでプロジェクトを右クリックし、コンテキストメニューから [発行]を選択します。
公開先の一覧が表示されますので、「Azure」を選択して [次へ]ボタンをクリックします。
続いて、ターゲット選択の一覧が表示されます。ここでは「Azure Function App(Windows)」を選択します。必要に応じて、その他の選択肢でも構いません。
続いて、アカウントの選択画面が表示されます。まだサインインをしていない場合は以下のような画面になります。必要に応じて無料の Azure アカウントを作成するか、既存の Azure アカウントを選択して [次へ] ボタンをクリックします。
続いて、Azure Functions を作成します。すでに Azure Portal で Azure Functions を作成している場合は、選択肢として表示されますが、存在しない場合は「(リソースが見つかりませんでした)」と表示されます。
この場合は、以下のピンクの枠の「新しい Azure Functionsを作成」をクリックして [次へ]ボタンをクリックします。
新しい Azure Function 作成画面が表示されます。
上記の枠の中は、以下の表を参考に入力してください。
名前 | 新しい関数アプリを一意に識別する名前を入力します。 そのまま使用するか、新しい名前を入力します。 |
---|---|
サブスクリプション | 使用する Azure サブスクリプションを選択します。 |
リソースグループ | 関数アプリを作成するリソース グループを入力します。 ドロップダウンから既存のリソース グループを選択するか、[新規] を選択して新しいリソース グループを作成します。 |
プランの種類 | 任意のプランを選択します。 |
場所 | 最寄りのリージョンを選択します。 |
Azure Storage | 新規を選択して汎用のストレージアカウントを作成します。 |
下記の画面が表示されたら[完了]ボタンをクリックします。
発行と確認
あともう一息です。
以下の画面が表示されたら [発行]ボタンをクリックします。
ビルドが開始されますので、ビルドの完了と公開が完了することを確認します。
続いて、サイトURL をクリックします。
以下のように表示されたら Azure への発行は成功です。
先ほどの URL の後ろに「<関数名>?name=HIRO」を入力すると、以下のような結果になります。
コメント