ラボ 02: Azure Functions を使用してタスク処理ロジックを実装する

Microsoft Azure ユーザー インターフェイス

Microsoft クラウド ツールの動的な性質を考慮すると、このトレーニング コンテンツの開発の後に発生する Azure UI の変更に気付くかもしれません。 その結果、ラボの指示とラボの手順が正しく整合しなくなる可能性があります。

Microsoft は、コミュニティから必要な変更の通知があったときに、このトレーニング コースを更新します。 ただし、クラウドの更新は頻繁に発生するため、このトレーニング コンテンツの更新の前に UI の変更に気付く可能性があります。 これが発生した場合は、その変更に適応し、ラボでは必要に応じてそれらに対応してください。

Instructions

開始する前に

ラボ環境にサインインする

次の資格情報を使用して Windows 11 仮想マシン (VM) にサインインします。

  • ユーザー名: Admin
  • パスワード: Pa55w.rd

: 仮想ラボ環境に接続するための手順は、インストラクターから提供されます。

インストールされているアプリケーションを確認する

Windows 11 デスクトップでタスク バーを探します。 タスク バーには、このラボで使用する次のようなアプリケーションのアイコンが含まれています。

  • Microsoft Edge
  • エクスプローラー
  • ターミナル
  • Visual Studio Code

課題シナリオ

このラボでは、HTTP POST コマンドを使用して、入力されて関数に送信されるテキストをエコーする単純な Azure 関数を作成する機能を示します。 これにより、HTTP 経由で関数をどのようにトリガーできるかが示されます。

さらに、固定スケジュールで実行するように設定することで、Azure 関数を実行する方法を示します。 この関数では、スケジュールがトリガーされるたびにログにメッセージを書き込みます。

最後に、Azure 関数をストレージ アカウントなどの他の Azure リソースにどのように接続できるかを示します。 この関数では、作成したストレージ アカウントに接続し、Azure ストレージ アカウントに格納されているファイルのコンテンツを返します。

'’この ビデオ リンク を右クリックし、[新しいタブまたは新しいウィンドウでリンクを開く] を選択して、このビデオを表示します。’’

装飾

アーキテクチャの図

ユーザーが Azure Functions を使用してタスク処理ロジックを実装しているようすを示すアーキテクチャの図。

演習 1: Azure リソースを作成する

タスク 1: Azure portal を開く

  1. タスク バーで、Microsoft Edge アイコンを選択します。
  2. ブラウザー ウィンドウで、Azure portal (https://portal.azure.com) に移動してから、このラボで使用するアカウントでサインインします。

    : Azure portal に初めてサインインしている場合は、ポータルのツアーが表示されます。 このツアーをスキップする場合は、 [作業開始] を選択してポータルの使用を開始します。

タスク 2: Azure Storage アカウントを作成する

  1. Azure portal で、 [リソース、サービス、ドキュメントの検索] テキスト ボックスを使用してストレージ アカウントを検索し、結果の一覧で [ストレージ アカウント] を選択します。

  2.  [ストレージ アカウント]  ブレードで [+ 作成] を選択します。

  3. [ストレージ アカウントを作成する] ブレードの [基本] タブで、次のアクションを実行し、 [確認] を選択します。

    設定 アクション
    [サブスクリプション] ドロップダウン リスト 既定値のままにします
    [リソース グループ] セクション [新規作成] を選択し、「サーバーレス」と入力して [OK] を選択します
    [ストレージ アカウント名]  テキスト ボックス funcstor [ご自分の名前] 」と入力します
    [リージョン] ドロップダウン リスト [(米国) 米国東部] を選択します
    [パフォーマンス] セクション [Standard] オプションを選択します
    [冗長性] ドロップダウン リスト [ローカル冗長ストレージ (LRS)] を選択します

    次のスクリーンショットには、 [ストレージ アカウントを作成する] ブレードで構成された設定が表示されています。

    [ストレージ アカウントを作成する] ブレードで構成された設定を表示したスクリーンショット

  4. [確認] タブで、前の手順で選択したオプションを確認します。

  5. [作成] を選択して、指定した構成を使用してストレージ アカウントを作成します。

    : 作成タスクが完了するまで待ってから、このラボを続行してください。

  6. [概要] ブレードで、 [リソースに移動] ボタンを選択して、新しく作成されたストレージ アカウントのブレードに移動します。

  7.  [ストレージ アカウント]  ブレードの [セキュリティとネットワーク]  セクションで、 [アクセス キー] を選択します。

  8.  [アクセス キー]  ブレードで、 [キーの表示] を選択します。

  9.  [アクセス キー] ブレードで、接続文字列のいずれかを確認し ([表示] ボタンを使用)、[接続文字列]  ボックスのいずれかの値をメモ帳に記録します。 キーはプラットフォームで管理される暗号化キーであり、このラボでは使用しません

    : どの接続文字列を選択しても問題ありません。 これらは交換可能です。

  10. メモ帳を開き、コピーした接続文字列の値をメモ帳に貼り付けます。 この値は、このラボの後の方で使用します。

タスク 3: 関数アプリを作成する

  1. Azure portal のナビゲーション ウィンドウで、 [リソースの作成] リンクを選択します。

  2. [リソースの作成] ブレードで、[サービスとマーケットプレースの検索] テキスト ボックスに「関数」と入力して Enter キーを押します。

  3. [マーケットプレース] 検索結果ブレードで、 [関数アプリ] の結果を選択します。

  4. [関数アプリ] ブレードで、 [作成] を選択します。

  5. [関数アプリの作成] ブレードで、選択されているホスティング プランが [従量課金] であることを確認し、[選択] をクリックします。

  6. [関数アプリの作成 (従量課金)] ブレードの [基本] タブで、次のアクションを実行してから、[次へ: ストレージ] を選択します。

    設定 アクション
    [サブスクリプション] ドロップダウン リスト 既定値のままにします
    [リソース グループ] セクション [サーバーレス] を選択します
    [関数アプリ名]  テキスト ボックス funclogic [ご自分の名前] 」と入力します
    [ランタイム スタック] ドロップダウン リスト [.NET] を選択します
    [バージョン] ドロップダウン リスト [8 (LTS)、分離ワーカー モデル] を選択します
    [リージョン] ドロップダウン リスト [米国東部] リージョンを選択します
    オペレーティング システム オプション [Linux] を選択します

    次のスクリーンショットには、 [関数アプリの作成] ブレードで構成された設定が表示されています。

    [関数アプリの作成] ブレードで構成された設定を表示しているスクリーンショット

  7. [ストレージ] タブで、次のアクションを実行してから、 [確認と作成] を選択します。

    設定 アクション
    [ストレージ アカウント] ドロップダウン リスト [funcstor [ご自分の名前]] ストレージ アカウントを選択します。
  8. [確認と作成] タブで、前の手順で選択したオプションを確認します。

  9. [作成] を選択して、指定した構成を使用して関数アプリを作成します。

    : 作成タスクが完了するまで待ってから、このラボを続行してください。

確認

この演習では、このラボで使用するすべてのリソースを作成しました。

演習 2: ローカルの Azure Functions プロジェクトを構成する

タスク 1: 関数プロジェクトを初期化する

  1. タスク バーで、[ターミナル] アイコンを選択します。

  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func の空のディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    

    : Windows エクスプローラーで、F:\Allfiles\Labs\02\Starter\func\.gitignore ファイルから読み取り専用属性を削除してください。

  3. 次のコマンドを実行して、dotnet-isolated ランタイムを使用して、Azure Functions Core Tools を使用して現在のディレクトリ内に新しいローカルの Azure Functions プロジェクトを作成します。

     func init --worker-runtime dotnet-isolated --target-framework net8.0 --force
    

    : Azure Functions Core Tools を使用して [新しいプロジェクトを作成する] ためのドキュメント [azure-functions-core-tools-new-project] を確認できます。

  4. [ターミナル] アプリケーションに切り替えます。

タスク 2: 接続文字列を構成する

  1. [スタート] 画面で、 [Visual Studio Code] タイルを選択します。
  2. [ファイル] メニューの [フォルダーを開く] を選択します。
  3. 開く [エクスプローラー] ウィンドウで、Allfiles (F):\Allfiles\Labs\02\Starter\func を参照し、 [フォルダーの選択] を選択します。
  4. [Visual Studio Code] ウィンドウの [エクスプローラー] ペインで、local.settings.json ファイルを開きます。
  5. AzureWebJobsStorage 設定の現在の値を確認します。

     "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    
  6. AzureWebJobsStorage 要素の値を、このラボで前に記録したストレージ アカウントの 接続文字列に変更します。
  7. local.settings.json ファイルを保存します。

タスク 3: プロジェクトをビルドして検証する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. 次のコマンドを実行して、.NET プロジェクトをビルドします。

     dotnet build
    

確認

この演習では、Azure Functions の開発に使用するローカル プロジェクトを作成しました。

演習 3: HTTP 要求によってトリガーされる関数を作成する

タスク 1: HTTP によってトリガーされる関数を作成する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. 次のコマンドを実行して、HTTP トリガー テンプレートを使用して、Azure Functions Core Tools を使用して Echo という名前の新しい関数を作成します。

     func new --template "HTTP trigger" --name "Echo"
    

    : Azure Functions Core Tools を使用して [新しい関数を作成する] ためのドキュメント [azure-functions-core-tools-new-function] を確認できます。

  4. 現在実行中のターミナル アプリケーションを閉じます。

タスク 2: HTTP によってトリガーされる関数コードを記述する

  1. [スタート] 画面で、 [Visual Studio Code] タイルを選択します。
  2. [ファイル] メニューの [フォルダーを開く] を選択します。
  3. 開く [エクスプローラー] ウィンドウで、Allfiles (F):\Allfiles\Labs\02\Starter\func を参照し、 [フォルダーの選択] を選択します。
  4. [Visual Studio Code] ウィンドウの [エクスプローラー] ペインで、Echo.cs ファイルを開きます。

  5. Echo.cs ファイル内のすべてのコンテンツを削除し、次のコードを追加します。 これにより、POST 要求を受け取り、その要求本文を返す、HTTP によってトリガーされる “Echo” という関数が定義されます。 ILogger インターフェイスは、情報のログ記録にも使用されます。 この関数を使用して、HTTP 要求と応答をテストできます。

     using System.Net;
     using Microsoft.Azure.Functions.Worker;
     using Microsoft.Azure.Functions.Worker.Http;
     using Microsoft.Extensions.Logging;
        
     namespace func
     {
         public class Echo
         {
             private readonly ILogger _logger;
    
             public Echo(ILoggerFactory loggerFactory)
             {
                 _logger = loggerFactory.CreateLogger<Echo>();
             }
    
             [Function("Echo")]
             public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
             {
                 _logger.LogInformation("C# HTTP trigger function processed a request.");
    
                 var response = req.CreateResponse(HttpStatusCode.OK);
                 response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
    
                 StreamReader reader = new StreamReader(req.Body);
                 string requestBody = reader.ReadToEnd();
                 response.WriteString(requestBody);
    
                 return response;
             }
         }
     }
    
  6. [保存] を選択して、変更内容を Echo.cs ファイルに保存します。

タスク 3:curl を使用して HTTP トリガー関数をテストする

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. 次のコマンドを実行して、関数アプリ プロジェクトを実行します。

     func start --build
    

    : Azure Functions Core Tools を使用して関数アプリ プロジェクトをローカルで開始するためのドキュメントを確認できます。

  4. ラボのコンピューターで、コマンド プロンプトを起動します。

  5. 次のコマンドを実行して、HTTP 要求本文を数値 3 に設定して http://localhost:7071/api/echo に対して POST REST API 呼び出しのテストを実行します。

    curl -X POST -i http://localhost:7071/api/echo -d 3
    
  6. 次のコマンドを実行して、HTTP 要求本文を数値 5 に設定して http://localhost:7071/api/echo に対して POST REST API 呼び出しをテストします。

    curl -X POST -i http://localhost:7071/api/echo -d 5
    
  7. 次のコマンドを実行して、HTTP 要求本文を文字列値 Hello に設定して http://localhost:7071/api/echo に対して POST REST API 呼び出しをテストします。

    curl -X POST -i http://localhost:7071/api/echo -d "Hello"
    
  8. 次のコマンドを実行して、http://localhost:7071/api/echo に対して POST REST API 呼び出しをテストします (HTTP 要求本文を JavaScript Object Notation (JSON) の値 {“msg”: “Successful”} に設定)。

    curl -X POST -i http://localhost:7071/api/echo -d "{"msg": "Successful"}"
    
  9. ターミナル アプリケーションの現在実行中のすべてのインスタンスとコマンド プロンプト アプリケーションを閉じます。

確認

この演習では、HTTP POST 要求を経由して送信されたコンテンツをエコーする基本的な関数を作成しました。

演習 4: スケジュールに従ってトリガーされる関数を作成する

タスク 1: スケジュールによってトリガーされる関数を作成する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. ターミナルから、次のコマンドを実行して Azure Functions Core Tools を使用し、タイマー トリガー テンプレートを使って Recurring という名前の新しい関数を作成します。

     func new --template "Timer trigger" --name "Recurring"
    

    : Azure Functions Core Tools を使用して [新しい関数を作成する] ためのドキュメント [azure-functions-core-tools-new-function] を確認できます。

  4. 現在実行中のターミナル アプリケーションを閉じます。

タスク 2: 関数コードを確認する

  1. [スタート] 画面で、 [Visual Studio Code] タイルを選択します。
  2. [ファイル] メニューの [フォルダーを開く] を選択します。
  3. 開く [エクスプローラー] ウィンドウで、Allfiles (F):\Allfiles\Labs\02\Starter\func を参照し、 [フォルダーの選択] を選択します。
  4. [Visual Studio Code] ウィンドウの [エクスプローラー] ペインで、Recurring.cs ファイルを開きます。
  5. コード エディターで、実装を確認します。

     using System;
     using Microsoft.Azure.Functions.Worker;
     using Microsoft.Extensions.Logging;
    
     namespace func
     {
         public class Recurring
         {
             private readonly ILogger _logger;
    
             public Recurring(ILoggerFactory loggerFactory)
             {
                 _logger = loggerFactory.CreateLogger<Recurring>();
             }
    
             [Function("Recurring")]
             public void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer)
             {
                 _logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    
                 if (myTimer.ScheduleStatus is not null)
                 {
                     _logger.LogInformation($"Next timer schedule at: {myTimer.ScheduleStatus.Next}");
                 }
             }
         }
     }
    
  6. 17 行目の "0 */5 * * * *""0 */1 * * * *" に置き換えて反復頻度の間隔を 5 分ではなく 1 分に設定し、変更を保存します。

タスク 3: 関数の実行を確認する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. ターミナルで次のコマンドを実行して、関数アプリ プロジェクトを実行します。

     func start --build
    

    : Azure Functions Core Tools を使用して [関数アプリ プロジェクトをローカルで開始する] ためのドキュメント [azure-functions-core-tools-start-function] を確認できます。

  4. 約 1 分ごとに実行される関数を確認します。 関数が実行されるたびに、単純なメッセージがログにレンダリングされます。
  5. 現在実行中のターミナル アプリケーションを閉じます。
  6. [Visual Studio Code] ウィンドウを閉じます。

確認

この演習では、固定スケジュールに基づいて自動的に実行される関数を作成しました。

演習 5: 他のサービスと統合する関数を作成する

タスク 1: サンプル コンテンツを Azure Blob Storage にアップロードする

  1. Azure portal のナビゲーション ウィンドウで、 [リソース グループ] リンクを選択します。
  2. [リソース グループ] ブレードで、このラボで前に作成した [Serverless] リソース グループを選択します。
  3. [Serverless] ブレードで、このラボで前に作成した [funcstor [yourname]] ストレージ アカウントを選択します。
  4. [ストレージ アカウント] ブレードで、 [データ ストレージ] セクションの [コンテナー] リンクを選択します。
  5. [コンテナー] セクションで、 [+ コンテナー] を選択します。
  6. [新しいコンテナー] ポップアップ ウィンドウで、次のアクションを実行し、 [作成] を選択します。

    設定 アクション
    [名前] テキスト ボックス content」と入力します
  7. [コンテナー] セクションに戻り、最近作成された [content] コンテナーを選択します。
  8. [コンテナー] ブレードで、 [アップロード] を選択します。
  9. [BLOB のアップロード] ウィンドウで、次のアクションを実行し、 [アップロード] を選択します。

    設定 アクション
    [ファイル] セクション [ファイルの参照] を選択するか、ドラッグ アンド ドロップ機能を使用します
    [エクスプローラー] ウィンドウ Allfiles (F):\Allfiles\Labs\02\Starter を参照し、settings.json ファイルを選択してから [開く] を選択します
    [ファイルが既に存在する場合は上書きする] チェック ボックス このチェック ボックスがオンになっていることを確認します

    : BLOB がアップロードされるまで待ってから、このラボを続行してください。

タスク 2: HTTP によってトリガーされる関数を作成する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. ターミナルで次のコマンドを実行して、HTTP トリガー テンプレートを使用して、Azure Functions Core Tools を使い GetSettingInfo という名前の新しい関数を作成します。

     func new --template "HTTP trigger" --name "GetSettingInfo"
    

    : Azure Functions Core Tools を使用して [新しい関数を作成する] ためのドキュメント [azure-functions-core-tools-new-function] を確認できます。

  4. 現在実行中のターミナル アプリケーションを閉じます。

タスク 3:Azure Storage Blob の拡張機能を登録する

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. ターミナルで、次のコマンドを実行して、Microsoft.Azure.Functions.Worker.Extensions.Storage の拡張機能を登録します。

     dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 6.2.0
    

タスク 4:HTTP でトリガーされる BLOB 入力の関数コードを記述する

  1. [スタート] 画面で、 [Visual Studio Code] タイルを選択します。
  2. [ファイル] メニューの [フォルダーを開く] を選択します。
  3. 開く [エクスプローラー] ウィンドウで、Allfiles (F):\Allfiles\Labs\02\Starter\func を参照し、 [フォルダーの選択] を選択します。
  4. [Visual Studio Code] ウィンドウの [エクスプローラー] ペインで、GetSettingInfo.cs ファイルを開きます。
  5. 17 行目から始まる関数 GetSettingInfo の自動生成コードの内容を次のコードに置き換えます。

             [Function("GetSettingInfo")]
             public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req, 
                 [BlobInput("content/settings.json", Connection = "AzureWebJobsStorage")] string blobContent
                 )
             {
                 _logger.LogInformation("C# HTTP trigger function processed a request.");
                 _logger.LogInformation($"{blobContent}");
    
                 var response = req.CreateResponse(HttpStatusCode.OK);
                 response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
                 response.WriteString($"{blobContent}");
    
                 return response;
             }
    
  6. 次の内容で構成される結果のコードを確認します (このコードは、HTTP GET 要求に応答して Azure Blob Storage コンテナー内の JSON ファイルの内容を返します)。

     using System.Net;
     using Microsoft.Azure.Functions.Worker;
     using Microsoft.Azure.Functions.Worker.Http;
     using Microsoft.Extensions.Logging;
    
     namespace func
     {
         public class GetSettingInfo
         {
             private readonly ILogger _logger;
    
             public GetSettingInfo(ILoggerFactory loggerFactory)
             {
                 _logger = loggerFactory.CreateLogger<GetSettingInfo>();
             }
    
             [Function("GetSettingInfo")]
             public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
                 [BlobInput("content/settings.json", Connection = "AzureWebJobsStorage")] string blobContent
                 )
             {
                 _logger.LogInformation("C# HTTP trigger function processed a request.");
                 _logger.LogInformation($"{blobContent}");
    
                 var response = req.CreateResponse(HttpStatusCode.OK);
                 response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
                 response.WriteString($"{blobContent}");
    
                 return response;
             }
         }
     }
    
  7. [保存] を選択して、変更内容を GetSettingInfo.cs ファイルに保存します。

タスク 5:curl を使用して関数をテストする

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. ターミナルで次のコマンドを実行して、関数アプリ プロジェクトを実行します。

     func start --build
    

    : Azure Functions Core Tools を使用して [関数アプリ プロジェクトをローカルで開始する] ためのドキュメント [azure-functions-core-tools-start-function] を確認できます。

  3. ラボのコンピューターで、コマンド プロンプトを起動します。

  4. 次のコマンドを実行して、http://localhost:7071/api/GetSettingInfo に対する GET REST API 呼び出しをテストします。

    curl -X GET -i http://localhost:7071/api/GetSettingInfo
    
  5. 関数アプリからの応答の JSON コンテンツを確認します。次の行が含まれているはずです。

     {
         "version": "0.2.4",
         "root": "/usr/libexec/mews_principal/",
         "device": {
             "id": "21e46d2b2b926cba031a23c6919"
         },
         "notifications": {
             "email": "joseph.price@contoso.com",
             "phone": "(425) 555-0162 x4151"
         }
     }
    
  6. ターミナル アプリケーションの現在実行中のすべてのインスタンスとコマンド プロンプト アプリケーションを閉じます。

確認

この演習では、ストレージ アカウントからの JSON ファイルの内容を返す関数を作成しました。

演習 6: ローカル関数プロジェクトを Azure Functions アプリにデプロイする

タスク 1: Azure Functions Core Tools を使用してデプロイする

  1. タスク バーで、[ターミナル] アイコンを選択します。
  2. 次のコマンドを実行して、現在のディレクトリを Allfiles (F):\Allfiles\Labs\02\Starter\func ディレクトリに変更します。

     cd F:\Allfiles\Labs\02\Starter\func
    
  3. コマンド プロンプトから、次のコマンドを実行して、Azure コマンド ライン インターフェイス (CLI) にログインします。

     az login
    
  4. Microsoft Edge ブラウザー ウィンドウで、このラボで使用している Microsoft または Azure Active Directory アカウントの名前とパスワードを入力し、 [サインイン] を選択します。
  5. 現在開いているターミナル ウィンドウに戻ります。 サインイン プロセスが完了するまで待ちます。
  6. ターミナルで次のコマンドを実行して関数アプリ プロジェクトを発行します (<function-app-name> プレースホルダーを、このラボで前に作成した関数アプリの名前に置き換えます)。

     func azure functionapp publish <function-app-name> --dotnet-version 8.0
    

    : たとえば、関数アプリ名funclogicstudent である場合、コマンドは func azure functionapp publish funclogicstudent になります。 Azure Functions Core Tools を使用して [ローカル関数アプリ プロジェクトを公開する] ためのドキュメント [azure-functions-core-tools-publish-azure] を確認できます。

  7. デプロイが完了するまで待ってから、このラボを続行してください。
  8. 現在実行中のターミナル アプリケーションを閉じます。

タスク 2: デプロイを検証する

  1. タスク バーで、 [Microsoft Edge] アイコンを選択し、Azure portal が表示されているタブを選びます。
  2. Azure portal のナビゲーション ウィンドウで、 [リソース グループ] リンクを選択します。
  3. [リソース グループ] ブレードで、このラボで前に作成した [Serverless] リソース グループを選択します。
  4. [Serverless] ブレードで、このラボで前に作成した [funclogic [yourname]] 関数アプリを選択します。
  5. Function App の [概要] ブレードで、[関数] ペインを選択します。
  6. [関数] ペインで、既存の [GetSettingInfo] 関数を選択します。
  7. [関数] ブレードで、 [開発者] セクションの [コードとテスト] オプションを選択します。
  8. 関数エディターで、 [テストと実行] を選択します。
  9. 自動的に表示されるペインの [HTTP メソッド] ドロップダウン リストで、 [GET] を選択します。
  10. [実行] を選択して、関数をテストします。
  11. [HTTP 応答コンテンツ] で、テストの実行の結果を確認します。 JSON コンテンツには、次のコードが含まれているはずです。

    {
        "version": "0.2.4",
        "root": "/usr/libexec/mews_principal/",
        "device": {
            "id": "21e46d2b2b926cba031a23c6919"
        },
        "notifications": {
            "email": "joseph.price@contoso.com",
            "phone": "(425) 555-0162 x4151"
        }
    }
    

確認

この演習では、ローカル関数プロジェクトを Azure Functions にデプロイし、それらの関数が Azure で動作することを検証しました。