クイックスタート: Visual Studio Code を使用して Azure に C# 関数を作成する

この記事では、Visual Studio Code を使用して、HTTP 要求に応答する C# 関数を作成します。 コードをローカルでテストした後、Azure Functions のサーバーレス環境にデプロイします。

この記事では、次の 2 種類のコンパイル済み C# 関数の作成をサポートしています。

実行モデル 説明
インプロセス 関数コードは、Functions ホスト プロセスと同じプロセスで実行されます。 .NET Core 3.1 と .NET 6.0 の両方をサポートします。 詳細については、「Azure Functions を使用する C# クラス ライブラリ関数を開発する」を参照してください。
分離プロセス 関数コードは、別の .NET ワーカー プロセスで実行されます。 .NET 5.0 と .NET 6.0 の両方をサポートします。 詳細については、C# での分離プロセス関数の開発に関する記事を参照してください。

この記事では、.NET 6.0 で実行される HTTP によってトリガーされる関数を作成します。 また、この記事の CLI ベースのバージョンもあります。

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

環境を構成する

作業を開始する前に、次の要件が満たされていることを確認します。

アクティブなサブスクリプションを含む Azure アカウントも必要です。 無料でアカウントを作成できます

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

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

  1. アクティビティ バーの Azure アイコンを選択し、 [Azure: Functions] 領域で [新しいプロジェクトの作成] アイコンを選択します。

    [新しいプロジェクトの作成] を選択する

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

    注意

    これらの手順は、ワークスペースの外部で実行するように設計されています。 ここでは、ワークスペースに含まれるプロジェクト フォルダーは選択しないでください。

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

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

    注意

    ランタイム オプションとして .NET 6 が表示されない場合は、次のことを確認してください。

    • .NET 6.0 SDK がインストールされていることを確認します。
    • F1 キーを押して「Preferences: Open user settings」と入力し、Azure Functions: Project Runtime を検索して、既定のランタイム バージョンを ~4 に変更します。
  4. Visual Studio Code は、この情報を使用して、HTTP トリガーによる Azure Functions プロジェクトを生成します。 ローカル プロジェクト ファイルは、エクスプローラーで表示できます。 作成されるファイルの詳細については、「生成されるプロジェクト ファイル」を参照してください。

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

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

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

    ローカル関数の VS Code の出力

    Windows での実行に問題がある場合、Visual Studio Code の既定のターミナルが WSL Bash に設定されていないことをご確認ください。

  2. Core Tools を実行したまま、Azure: Functions 領域に移動します。 [Functions][ローカル プロジェクト] > [Functions] を展開します。 HttpExample 関数を右クリック (Windows) または Ctrl キーを押しながらクリック (macOS) して、 [Execute Function Now](今すぐ関数を実行) を選択します。

    Visual Studio Code から今すぐ関数を実行する

  3. [Enter request body](要求本文を入力してください) で、Enter キーを押して要求メッセージを関数に送信します。

  4. ローカルで関数を実行し、応答が返されると、Visual Studio Code で通知が発生します。 関数の実行に関する情報は、 [ターミナル] パネルに表示されます。

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

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

Azure へのサインイン

アプリを発行するには、Azure にサインインしておく必要があります。

  1. まだサインインしていない場合は、アクティビティ バーの Azure アイコンを選択し、 [Azure: Functions] 領域で、 [Azure にサインイン...] を選択します。アカウントがない場合は、 無料の Azure アカウントを作成する ことができます。 学生は、 無料の Azure for Students アカウントを作成する ことができます。

    VS Code 内で Azure にサインインする

    既にサインインしている場合は、次のセクションに進んでください。

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

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

Azure にプロジェクトを発行する

このセクションでは、ご利用の Azure サブスクリプションに関数アプリと関連リソースを作成し、コードをデプロイします。

重要

既存の関数アプリに発行すると、Azure のそのアプリのコンテンツが上書きされます。

  1. アクティビティ バーの Azure アイコンを選択し、 [Azure: Functions] 領域で、 [Deploy to function app](関数アプリにデプロイ) ボタンを選択します。

    プロジェクトを Azure に発行する

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

    • Select folder (フォルダーを選択してください) : ワークスペースのフォルダーを選択するか、関数アプリが格納されているフォルダーを参照します。 既に有効な関数アプリが開いている場合には、このプロンプトは表示されません。

    • Select subscription (サブスクリプションを選択してください) : 使用するサブスクリプションを選択します。 サブスクリプションが 1 つのみの場合、このプロンプトは表示されません。

    • Select function app in Azure (Azure で関数アプリを選択してください) : [- Create new Function App] を選択します。 (Advanced オプションはこの記事では取り上げません。選択しないでください。)

    • Enter a globally unique name for the function app (関数アプリのグローバルに一意の名前を入力します) : URL パスに有効な名前を入力します。 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。

    • Select a location for new resources (新しいリソースの場所を選択してください) : パフォーマンスを向上させるために、お近くの リージョンを選択してください。

    この拡張機能は、Azure に作成されている個々のリソースの状態を通知領域に表示します。

    Azure リソース作成の通知

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

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

    関数アプリが作成され、展開パッケージが適用されると、通知が表示されます。

    ヒント

    既定では、関数アプリに必要な Azure リソースが、指定した関数アプリ名に基づいて作成されます。 また、既定では、関数アプリを含んだ同じ新しいリソース グループがその作成先となります。 それらのリソースの名前をカスタマイズしたり、既存のリソースを再利用したりする場合は、高度な作成オプションを使用してプロジェクトを発行する必要があります。

  4. この通知の [View Output](出力の表示) を選択すると、作成済みの Azure リソースなど、作成とデプロイの結果が表示されます。 通知を見逃した場合は、右下隅にあるベル アイコンを選択して、再度確認します。

    作成完了通知

Azure で関数を実行する

  1. [Azure: Functions] 領域 (サイド バー内) に戻り、サブスクリプション、新しい関数アプリ、 [関数] の順に展開します。 HttpExample 関数を右クリック (Windows) または Ctrl キーを押しながらクリック (macOS) して、 [Execute Function Now](今すぐ関数を実行) を選択します。

    Visual Studio Code から今すぐ Azure で関数を実行する

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

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

リソースをクリーンアップする

この後、次の手順に進んで Azure Storage キュー バインドを関数に追加する場合、既存の作業をベースにするので、リソースはすべてそのままにしておく必要があります。

それ以外の場合は、追加コストの発生を避けるために、次の手順に従って関数アプリとその関連リソースを削除してください。

  1. Visual Studio Code で、F1 キーを押してコマンド パレットを開きます。 コマンド パレットで、Azure Functions: Open in portal を検索して選択します。

  2. 関数アプリを選択し、Enter キーを押します。 その関数アプリのページが Azure portal で開きます。

  3. [概要] タブで、 [リソース グループ] の横にある名前付きリンクを選択します。

    関数アプリのページから削除するリソース グループを選択する。

  4. [リソース グループ] ページで、含まれているリソースの一覧を確認し、削除するものであることを確認します。

  5. [リソース グループの削除] を選択し、指示に従います。

    削除には数分かかることがあります。 実行されると、通知が数秒間表示されます。 ページの上部にあるベルのアイコンを選択して、通知を表示することもできます。

Functions のコストについて詳しくは、「従量課金プランのコストの見積もり」を参照してください。

次のステップ

Visual Studio Code を使用して、HTTP によってトリガーされる単純な関数を含む関数アプリを作成しました。 次の記事では、Azure Cosmos DB または Azure Queue Storage に接続することによってその関数を拡張します。 他の Azure サービスへの接続について詳しくは、「Azure Functions の既存の関数にバインドを追加する」を参照してください。