演習: Visual Studio Code を使用して Azure 関数を作成する

完了

この演習では、HTTP 要求に応答する C# 関数を作成する方法について学習します。 Visual Studio Code でローカルにコードを作成し、テストした後に、Azure にデプロイします。

前提条件

開始する前に、以下の要件が満たされていることを確認してください。

ローカル プロジェクトを作成する

このセクションでは、Visual Studio Code を使用して、ローカル Azure Functions プロジェクトを C# で作成します。 この演習の後半で、関数コードを Azure に発行します。

  1. アクティビティ バーの Azure アイコンを選択し、[ワークスペース] 領域で [追加] を選択します。最後に [関数の作成] を選択します。

    Choosing to create a new project.

    Note

    新しいプロジェクトを作成するように求めるポップアップ メッセージが表示される場合があります。そのときは [新しいプロジェクトの作成] を選択します。

  2. プロジェクト ワークスペースのディレクトリの場所を選択し、 [選択] をクリックします。

    Note

    必ず既存のワークスペース外のプロジェクト フォルダーを選択してください。

  3. プロンプトで、次の情報を入力します。

    • 言語を選択する: C# を選択します。
    • .NET ランタイムを選択する: .NET 6 を選択します。
    • Select a template for your project's first function (プロジェクトの最初の関数のテンプレートを選択してください) : [HTTP trigger] を選択します。
    • Provide a function name (関数名を指定してください): HttpExample」と入力します。
    • Provide a namespace (名前空間を指定してください): 「My.Function」と入力します。
    • 承認レベル: Anonymous を選択します。この場合、すべてのユーザーが関数のエンドポイントを呼び出すことができます。
    • Select how you would like to open your project (プロジェクトを開く方法を選択してください) : [Add to workspace] を選択します。

Visual Studio Code は、この情報を使用して、HTTP トリガーによる Azure Functions プロジェクトを生成します。

関数をローカルで実行する

Visual Studio Code を Azure Functions Core Tools と統合することで、このプロジェクトをローカルの開発用コンピューター上で実行してから、Azure に発行することができます。

  1. Visual Studio Code でターミナルが開いていることを確認します。 ターミナルを開くには、[ターミナル]、次いでメニュー バーの [新しいターミナル] を選択します。

  2. F5 キーを押してデバッガーで関数アプリ プロジェクトを起動します。 Core Tools からの出力がターミナル パネルに表示されます。 アプリがターミナル パネルで起動します。 HTTP によってトリガーされる関数の URL エンドポイントがローカルで実行されていることを確認できます。

    The endpoint of your HTTP-triggered function is displayed in the **Terminal** panel.

  3. Core Tools を実行したまま、Azure: Functions 領域に移動します。 [Functions][ローカル プロジェクト]>[Functions] を展開します。 HttpExample 関数を右クリックし、[Execute Function Now](今すぐ関数を実行する) を選択します。

    Steps for running the function locally as described in the text.

  4. [Enter request body](要求の本文を入力する) に、{ "name": "Azure" } という要求メッセージの本文値を入力します。 Enter キーを押して、この要求メッセージを関数に送信します。 ローカルで関数を実行し、応答が返されると、Visual Studio Code で通知が発生します。 関数の実行に関する情報は、 [ターミナル] パネルに表示されます。

  5. Shift + F5 キーを押して Core Tools を停止し、デバッガーの接続を解除します。

関数がローカル コンピューター上で正常に動作することを確認したら、Visual Studio Code を使用してプロジェクトを直接 Azure に発行します。

Azure へのサインイン

アプリを発行するには、Azure にサインインしておく必要があります。 既にサインインしている場合は、次のセクションに進んでください。

  1. まだサインインしていない場合は、[アクティビティ] バーの Azure アイコンを選択し、[Azure: Functions] 領域で、[Azure にサインイン...] を選択します。

    Sign in to Azure within VS Code

  2. ブラウザーでプロンプトが表示されたら、ご利用の Azure アカウントを選択し、その Azure アカウントの資格情報を使用してサインインします。

  3. 正常にサインインしたら、新しいブラウザー ウィンドウを閉じてかまいません。 ご利用の Azure アカウントに属しているサブスクリプションがサイド バーに表示されます。

Azure でリソースを作成する

このセクションでは、ローカル関数アプリをデプロイするために必要な Azure リソースを作成します。

  1. アクティビティ バーの Azure アイコンを選択し、[リソース] 領域で [リソースの作成] ボタンを選択します。

    Location of the Deploy to Function app button.

  2. プロンプトで、次の情報を入力します。

    • [Azure で関数アプリを作成する] を選択します。
    • Enter a globally unique name for the function app (関数アプリのグローバルに一意の名前を入力します) : URL パスに有効な名前を入力します。 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。
    • ランタイム スタックを選択する: 前述の「ローカル プロジェクトを作成する」セクションで選択したのと同じものを使用します。
    • 新しいリソースの場所を選択する: パフォーマンスを向上させるために、お近くのリージョンを選択します。
    • Select subscription (サブスクリプションを選択してください) : 使用するサブスクリプションを選択します。 サブスクリプションが 1 つのみの場合、このプロンプトは表示されません。

    この拡張機能は、Azure で作成された個々のリソースの状態をターミナル ウィンドウの [AZURE: アクティビティ ログ] 領域に表示します。

  3. 完了すると、関数アプリ名に基づく名前を使用して、次の Azure リソースがサブスクリプションに作成されます。

    • リソース グループ。関連リソースの論理コンテナーです。
    • Standard Azure ストレージ アカウント。プロジェクトについての状態とその他の情報を保持します。
    • 従量課金プラン。サーバーレス関数アプリの実行環境となるホストを定義します。
    • 関数アプリ。関数コードを実行するための環境となります。 関数アプリを使用すると、同じホスティング プランに含まれるリソースの管理、デプロイ、共有を容易にするための論理ユニットとして関数をグループ化できます。
    • 関数アプリに接続された Application Insights インスタンス。サーバーレス関数の使用を追跡します。

コードをデプロイする

  1. Azure バーの [ワークスペース] セクションで、[デプロイ] ボタンを選択後 [関数アプリにデプロイする] を選択します。

    Image showing location of the **Deploy...** button.

  2. リソースの選択を求められたら、前のセクションで作成した関数アプリを選択します。

  3. 確認のプロンプトで [デプロイ] を選択して、関数のデプロイを確認します。

    重要

    既存の関数に発行すると、以前のデプロイはすべて上書きされます。

Azure で関数を実行する

  1. [リソース] 領域 (サイド バー内) に戻り、サブスクリプション、新しい関数アプリ、[関数] の順に展開します。 HttpExample 関数を右クリックし、[Execute Function Now](今すぐ関数を実行する) を選択します。

    Execute function now in Azure from Visual Studio Code

  2. [Enter request body]\(要求本文を入力してください\) に、要求メッセージ本文の値として { "name": "Azure" } が表示されます。 Enter キーを押して、この要求メッセージを関数に送信します。

  3. Azure で関数を実行し、応答が返されると、Visual Studio Code で通知が発生します。

    Executed function notification