伝説のどいつまの伝説~失敗編~

岩美に永住したい新米エンジニアのあれやこれやな話。

【1 人アドベントカレンダー 2020】第 12 日目

だいぶアドベントカレンダーの趣旨からは外れてしまいますが、今年も 1 人アドベントカレンダー実施することにしました。
25 日まで毎日更新頑張ります!
qiita.com

今日の項目内容

Visual Studio で Azure 関数を開発、テスト、デプロイする

  • Visual Studio を使用してローカルで簡単な Azure 関数を作成してテストする
  • 演習 - Visual Studio を使用し、ローカルで簡単な Azure 関数を作成してテストする
  • 簡単な Azure 関数を発行する
  • 演習 - 簡単な Azure 関数を発行する
  • 演習 - Azure 関数の単体テストを行う

学習内容まとめ

Visual Studio を使用してローカルで簡単な Azure 関数を作成してテストする

Azure 関数は静的クラスとして実装される。
このクラスでは、クラスのエントリポイントとして機能する Run という静的な非同期メソッドが提供される。
以下の例のように、メソッドに渡すパラメータでトリガーのコンテキストを指定する。

public static class Function1
{
    [FunctionName("Function1")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "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;

        return name != null
            ? (ActionResult)new OkObjectResult($"Hello, {name}")
            : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
    }
}

演習 - Visual Studio を使用し、ローカルで簡単な Azure 関数を作成してテストする

f:id:d01tsumath:20201212112707p:plain
f:id:d01tsumath:20201212112721p:plain
f:id:d01tsumath:20201212112743p:plain
f:id:d01tsumath:20201212112754p:plain

簡単な Azure 関数を発行する

Azure Functions を利用すると、App Service の継続的インテグレーションを使用して、関数アプリを簡単にデプロイできる。
Functions は BitBucket, Dropbox, GitHub, Azure DevOps と統合されている。
これにより、統合されたサービスのいずれかを使用して行われる関数コードの更新により Azure へのデプロイがトリガーされるワークフローが可能になる。

演習 - 簡単な Azure 関数を発行する

サンドボックスを用いて演習を行う。
f:id:d01tsumath:20201212115146p:plain

演習 - Azure 関数の単体テストを行う

f:id:d01tsumath:20201212115857p:plain

本日の内容は以上です。