Visual Studio Code を使用して Azure Functions を開発する

Visual Studio Code 用 Azure Functions 拡張機能を使用すると、関数をローカルで開発して、Azure にデプロイすることができます。 Azure Functions を初めて使用する場合は、詳細について、「Azure Functions の概要」を参照してください。

Azure Functions 拡張機能には、次のような利点があります。

  • ローカル開発用コンピューターで関数を編集、作成、および実行できます。
  • Azure に直接 Azure Functions プロジェクトを発行できます。
  • Visual Studio Code の利点を活用しながら、さまざまな言語で関数を作成できます。

拡張機能は、Azure Functions ランタイム バージョン 2.x 以降でサポートされている次の言語で使用できます。

*デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

この記事の例は、現在、JavaScript (Node.js) と C# クラス ライブラリの関数でのみ使用可能です。

この記事では、Azure Functions 拡張機能を使って関数を開発して Azure に発行する方法に関する詳細情報を提供します。 この記事を読む前に、Visual Studio Code を使って最初の関数を作成 してください。

重要

1 つの関数アプリにローカル開発とポータル開発を混在させないでください。 ローカル プロジェクトから関数アプリに発行すると、ポータルで開発した関数がデプロイ プロセスによって上書きされます。

前提条件

ローカルで実行するための要件

これらの前提条件は、関数をローカルで実行およびデバッグするためにのみ必要です。 プロジェクトの作成、または Azure Functions への発行には必要ありません。

  • Azure Functions Core Tools バージョン 2.x 以降。 プロジェクトをローカルで開始すると、Core Tools パッケージが自動的にダウンロードされてインストールされます。 Core Tools には、Azure Functions ランタイム全体が含まれているため、ダウンロードとインストールにはしばらく時間がかかる場合があります。

  • Visual Studio Code 用の C# 拡張機能

  • .NET Core CLI ツール

Azure Functions プロジェクトを作成する

Functions の拡張機能により、最初の関数と共に関数アプリ プロジェクトを作成できます。 次の手順では、HTTP によってトリガーされる関数を新しい Functions プロジェクトに作成する方法を示します。 HTTP トリガーは、実演する最も単純な関数トリガー テンプレートです。

    1. アクティビティ バーで Azure アイコンを選択し、[ワークスペース (ローカル)] 領域の + ボタンを選択して、ドロップダウンから [関数の作成] を選択します。 確認を求められたら [新しいプロジェクトの作成] を選択します。

    [新しいプロジェクトの作成] ウィンドウのスクリーンショット。

  1. プロジェクト ワークスペースのディレクトリの場所を選択し、[選択] を選択します。 新しいフォルダーを作成するか、プロジェクト ワークスペースの空のフォルダーを選択する必要があります。 ワークスペースに最初から含まれているプロジェクト フォルダーは選択しないでください。

  2. 確認を求められたらプロジェクトの言語を選択し、必要に応じて特定の言語バージョンを選択します。

  3. HTTP トリガー関数テンプレートを選択するか、 [Skip for now](今はしない) を選択して、関数なしでプロジェクトを作成できます。 後でいつでも、プロジェクトに関数を追加できます。

    HTTP トリガーの選択を示すスクリーンショット。

  4. 関数名として HttpExample を入力して Enter キーを選択してから、 [関数] の承認を選択します。 この承認レベルでは、関数エンドポイントを呼び出すときに関数キーを指定する必要があります。

    関数の認可の作成を示すスクリーンショット。

  5. ドロップダウン リストから [ワークプレースに追加] を選択します。

    ワークプレースへの [追加] の選択を示すスクリーンショット。

  6. [このフォルダー内のファイルの作成者を信頼しますか?] ウィンドウで、[はい] を選択します。

    ファイルの作成者の信頼を確認するスクリーンショット。

  7. 選択した言語と、HTTP によってトリガーされる関数のテンプレートで、関数が作成されます。

    Visual Studio Code の HTTP トリガー関数テンプレートを示すスクリーンショット。

生成されたプロジェクト ファイル

このプロジェクト テンプレートは、選択した言語でプロジェクトを作成し、必要な依存関係をインストールします。 どの言語の場合も、新しいプロジェクトには次のファイルが含まれます。

  • host.json:Functions のホストを構成できます。 これらの設定は、関数をローカルで実行している場合と、Azure で実行している場合に適用されます。 詳細については、host.json のリファレンスを参照してください。

  • local.settings.json:関数をローカルで実行するときに使用される設定を保持します。 これらの設定は、関数をローカルで実行するときにのみ使用されます。 詳細については、「ローカル設定ファイル」を参照してください。

    重要

    local.settings.json ファイルにはシークレットを含めることができるため、それをプロジェクト ソース管理から除外する必要があります。

言語に応じて、次のような他のファイルが作成されます。

この時点で、入力および出力バインドを関数に追加できます。 また、新しい関数をプロジェクトに追加することもできます。

バインディング拡張機能をインストールする

HTTP トリガーとタイマー トリガーを除き、バインドは拡張機能パッケージで実装されます。 拡張機能パッケージは、それらを必要とするトリガーおよびバインド用のものをインストールデフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。 バインドの拡張機能をインストールするプロセスは、プロジェクトの言語によって異なります。

ターミナル ウィンドウで dotnet add package コマンドを実行して、プロジェクトに必要な拡張機能パッケージをインストールします。 次の例では、 インプロセス クラス ライブラリのバインドを追加する方法を示します。

dotnet add package Microsoft.Azure.WebJobs.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

次の例では、分離プロセス クラス ライブラリのバインドを追加する方法を示します。

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

いずれの場合も、<BINDING_TYPE_NAME> は、必要なバインドが含まれているパッケージの名前に置き換えられます。 対象のバインディングのリファレンス記事は、サポートされるバインディングの一覧で見つけることができます。

例の中の <TARGET_VERSION>3.0.0-beta5 などの特定のバージョンのパッケージに置き換えます。 有効なバージョンは、NuGet.org の個々のパッケージ ページに記載されています。Functions ランタイム 1.x または 2.x に対応する主要なバージョンは、バインデイングのリファレンス記事に示されています。

プロジェクトに関数を追加する

定義済みの Functions トリガー テンプレートのいずれかを使用して、既存のプロジェクトに新しい関数を追加できます。 新しい関数トリガーを追加するには、F1 キーを押してコマンド パレットを開き、次のコマンドを探して実行します: Azure Functions: Create Function。 プロンプトに従ってトリガーの種類を選択し、そのトリガーの必要な属性を定義します。 トリガーで、サービスに接続するためのアクセス キーまたは接続文字列が必要な場合は、関数トリガーを作成する前にそれを準備しておいてください。

このアクションの結果は、お使いのプロジェクトの言語によって異なります。

新しい C# クラス ライブラリ (.cs) ファイルがプロジェクトに追加されます。

サービスへの接続

入力および出力バインドを追加すると、関数を他の Azure サービスに接続できます。 バインドを使用すると、接続コードを作成する必要なく、関数を他のサービスに接続できます。 バインドを追加するプロセスは、プロジェクトの言語によって異なります。 バインドの詳細については、「Azure Functions でのトリガーとバインドの概念」を参照してください。

次の例では、outqueue という名前のストレージ キューに接続します。ここで、ストレージ アカウントの接続文字列は、local.settings.json の MyStorageConnection アプリケーション設定に指定されています。

次のパラメーターを Run メソッド定義に追加する関数メソッドを更新します。

[Queue("outqueue"),StorageAccount("AzureWebJobsStorage")] ICollector<string> msg,

msg パラメーターは ICollector<T> 型です。これは、関数の完了時に出力バインドに書き込まれるメッセージのコレクションを表します。 次のコードは、メッセージをコレクションに追加します。

// Add a message to the output collection.
msg.Add(name);

メッセージは、関数が完了したときにキューに送信されます。

詳細については、Queue Storage の出力バインドに関する参照記事のドキュメントを参照してください。 関数に追加可能なバインドの一般的な詳細情報については、Azure Functions の既存の関数へのバインドの追加に関するページを参照してください。

Azure へのサインイン

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

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

    VS Code 内の [Azure にサインイン] ウィンドウのスクリーンショット。

    既にサインインしていて、既存のサブスクリプションを確認できる場合は、次のセクションに進みます。 まだ Azure アカウントがない場合は、[Azure アカウントの作成] を選択します。学生の方は [Create an Azure for Students Account] (Azure for Students アカウントの作成) を選択してください。

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

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

Azure リソースを作成する

Functions プロジェクトを Azure に発行するには、コードを実行する Azure サブスクリプションに関数アプリおよび関連リソースがあらかじめ存在する必要があります。 関数アプリは、関数の実行コンテキストを提供します。 Visual Studio Code から Azure 内の関数アプリに発行すると、プロジェクトがパッケージ化されて、Azure サブスクリプション内の選択された関数アプリにデプロイされます。

Azure に関数アプリを作成する場合、既定値を使用した関数アプリのクイック作成パス、または高度なパスのいずれかを選択できます。 このようにすることで、作成されるリモート リソースをより細かく制御できます。

関数アプリのクイック作成

このセクションでは、Azure サブスクリプションに関数アプリと関連リソースを作成します。

  1. アクティビティ バーの Azure アイコンを選択します。 次に、[リソース] 領域の + アイコンを選択し、[Create Function App in Azure] (Azure に関数アプリを作成) オプションを選択します。

    Azure サブスクリプションでリソースを作成する

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

    Prompt [選択]
    サブスクリプションの選択 使用するサブスクリプションを選択します。 [リソース] に表示されるサブスクリプションが 1 つだけのときは、このプロンプトは表示されません。
    Enter a globally unique name for the function app (関数アプリのグローバルに一意の名前を入力します) URL パスに有効な名前を入力します。 入力した名前は、Azure Functions 内での一意性を確保するために検証されます。
    Select a runtime stack (ランタイム スタックを選択してください) ローカルで実行している言語バージョンを選択してください。
    Select a location for new resources (新しいリソースの場所を選択してください) パフォーマンスを向上させるために、お近くのリージョンを選択してください。

    この拡張機能は、Azure に作成されている個々のリソースの状態を [Azure: Activity Log] (Azure: アクティビティ ログ) パネルに表示します。

    Azure リソース作成のログ

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

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

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

    ヒント

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

高度なオプションを使用して Azure の新しい関数アプリにプロジェクトを発行する

次の手順では、高度な作成オプションを使用して作成された新しい関数アプリにプロジェクトを発行します。

  1. コマンド パレットに「Azure Functions: Create function app in Azure...(Advanced)」と入力します。

  2. サインしていない場合は、Azure にサインインするよう求められます。 無料の Azure アカウントを作成することもできます。 ブラウザーからサインインしたら、Visual Studio Code に戻ります。

  3. プロンプトに従って、次の情報を入力します。

    Prompt [選択]
    関数アプリにグローバルで一意の名前を入力します。 新しい関数アプリを識別するグローバルに一意の名前を入力し、Enter キーを選択します。 関数アプリ名の有効な文字は、a-z0-9- です。
    ランタイム スタックを選択します。 ローカルで実行している言語バージョンを選択してください。
    OS を選択します。 Linux または Windows を選択してください。 Python アプリは Linux で実行する必要があります。
    新しいリソース用のリソース グループの選択。 [新しいリソース グループの作成] を選択し、myResourceGroup のようなリソース グループ名を入力して、Enter キーを選択します。 既存のリソース グループを選択することもできます。
    新しいリソースの場所の選択。 自分の近く、または関数がアクセスする他のサービスの近くのリージョン内の場所を選択します。
    Select a hosting plan. (ホスティング プランを選択してください。) サーバーレスの従量課金プラン ホスティングの場合は [Consumption] (従量課金プラン) を選択します。この場合、関数が実行されているときにのみ課金されます。
    ストレージ アカウントを選択します。 [新しいストレージ アカウントの作成] を選択し、プロンプトで、関数アプリで使用する新しいストレージ アカウントのグローバルに一意の名前を入力して、Enter キーを選択します。 ストレージ アカウント名の長さは 3 文字から 24 文字で、数字と小文字のみを使用できます。 既存のアカウントを選択することもできます。
    Select an Application Insights resource for your app. (アプリの Application Insights のリソースを選択してください。) [Application Insights リソースの新規作成] を選択し、プロンプトで、関数の実行時データを格納するためのインスタンスの名前を入力します。

    関数アプリが作成され、展開パッケージが適用されると、通知が表示されます。 この通知の [View Output](出力の表示) を選択すると、作成済みの Azure リソースなど、作成とデプロイの結果が表示されます。

Azure で HTTP によってトリガーされる関数の URL を取得する

HTTP によってトリガーされる関数をクライアントから呼び出すには、関数アプリにデプロイされたときの関数の URL が必要です。 この URL には、必要なすべての関数キーが含まれています。 デプロイした関数のこれらの URL を取得するには、拡張機能を使用できます。 Azure でリモート関数を実行するだけの場合は、拡張機能の [Execute function now](今すぐ関数を実行) 機能を使用します。

  1. F1 キーを選択してコマンド パレットを開き、次のコマンドを検索して実行します: Azure Functions: Copy Function URL

  2. プロンプトに従って、Azure で関数アプリを選択し、次に、起動する特定の HTTP トリガーを選択します。

code クエリ パラメーターで渡された必要なキーとともに、関数の URL がクリップボードにコピーされます。 HTTP ツールを使って POST 要求を送信するか、ブラウザーを使って GET 要求をリモート関数に送信します。

拡張機能が Azure で関数の URL を取得する場合、Azure アカウントを使用して、関数を開始するために必要なキーが自動的に取得されます。 関数のアクセス キーの詳細を参照してください。 HTTP によってトリガーされない関数を開始するには、管理キーを使用デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

プロジェクト ファイルのデプロイ

接続されているソースの場所にあるソース ファイルを更新したときに Azure 内の関数アプリが更新されるよう、継続的デプロイを設定することをお勧めします。 Visual Studio Code からプロジェクト ファイルをデプロイすることもできます。

Visual Studio Code から発行するときには、ZIP デプロイ テクノロジを利用できます。

重要

既存の関数アプリにデプロイすると、Azure にあるそのアプリの内容が常に上書きされます。

  1. アクティビティ バーの Azure アイコンを選択し、[ワークスペース] 領域でプロジェクト フォルダーを選択して、[デプロイ] ボタンを選択します。

    Visual Studio Code ワークスペースからプロジェクトをデプロイする

  2. [Deploy to Function App](関数アプリへのデプロイ) を選択し、先ほど作成した関数アプリを選び、[Deploy](デプロイ) を選択します。

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

    [出力の表示] ウィンドウのスクリーンショット。

関数を実行する

Azure Functions 拡張機能を使用すると、個々の関数を実行できます。 ローカルの開発用コンピューター上のプロジェクト内、または Azure サブスクリプション内の関数を実行できます。

HTTP トリガー関数の場合、拡張機能により、HTTP エンドポイントが呼び出されます。 その他の種類のトリガーの場合は、管理者 API が呼び出されて関数が開始されます。 関数に送信される要求のメッセージ本文は、トリガーの種類によって異なります。 トリガーにテスト データが必要な場合、データを特定の JSON 形式で入力するように求められます。

Azure で関数を実行する

Visual Studio Code から Azure 内で関数を実行する場合。

  1. コマンド パレットで、「Azure Functions: Execute function now」と入力し、Azure サブスクリプションを選択します。

  2. 一覧から Azure 内の関数アプリを選択します。 ご使用の関数アプリが表示されない場合、適正なサブスクリプションにサインインしていることを確認してください。

  3. 実行する関数を一覧から選択して、 [Enter request body](要求本文を入力してください) に要求のメッセージ本文を入力します。 Enter キーを押して、この要求メッセージを関数に送信します。 [Enter request body](要求本文を入力してください) 内の既定のテキストは、本文の形式を示します。 関数アプリに関数が含まれていない場合、このエラーと共に通知エラーが表示されます。

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

また、Azure: Functions 領域から関数を実行することもできます。このためには、Azure サブスクリプション内の関数アプリから実行する関数を右クリックし (Mac では Ctrl キーを押しながら)、 [Execute function now](今すぐ関数を実行) を選択します。

Visual Studio Code から Azure で関数を実行する場合、拡張機能により、Azure アカウントを使用して、関数を開始するために必要なキーが自動的に取得されます。 関数のアクセス キーの詳細を参照してください。 HTTP によってトリガーされない関数を開始するには、管理キーを使用デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

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

ローカル ランタイムは、Azure で関数アプリをホストしているのと同じランタイムです。 ローカル設定は、local.settings.json ファイルから読み取られます。 Functions プロジェクトをローカルで実行するには、追加要件を満たす必要があります。

ローカルで実行するようにプロジェクトを構成する

Functions ランタイムは、HTTP と Webhook を除くすべてのトリガーの種類に対して内部で Azure Storage アカウントを使用します。 したがって、Values.AzureWebJobsStorage キーを、有効な Azure Storage アカウントの接続文字列に設定デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

このセクションでは、Visual Studio Code 用の Azure Storage 拡張機能Azure Storage Explorer と共に使用して、ストレージ接続文字列の接続と取得を行います。

ストレージ アカウントの接続文字列を設定するには、次のようにします。

  1. Visual Studio で Cloud Explorer を開き、[ストレージ アカウント][Your Storage Account](自分のストレージ アカウント) を展開し、[プロパティ] を選択し、[プライマリ接続文字列] 値をコピーします。

  2. プロジェクトで、local.settings.json ファイルを開き、コピーした接続文字列に AzureWebJobsStorage キーの値を設定します。

  3. 前の手順を繰り返し、関数に必要なその他のすべての接続について、Values 配列に一意のキーを追加します。

詳細については、「ローカル設定ファイル」を参照してください。

関数をローカルでデバッグする

関数をデバッグするには、F5 キーを選択します。 Core Tools をまだダウンロードしていない場合は、そうするよう求められます。 Core Tools がインストールされて実行されると、ターミナルに出力が表示されます。 この手順は、func start Core Tools コマンドをターミナルから実行するのと同じですが、追加のビルド タスクと、接続されたデバッガーが含まれます。

プロジェクトが実行されている場合、プロジェクトが Azure にデプロイされている場合と同様に、拡張機能の [Execute function now](今すぐ関数を実行) 機能を使用して関数をトリガーできます。 プロジェクトがデバッグ モードで実行されている場合は、予期したとおりに Visual Studio Code でブレークポイントがヒットします。

  1. コマンド パレットで、「Azure Functions: Execute function now」と入力し、 [ローカル プロジェクト] を選択します。

  2. プロジェクトで実行する関数を選択して、 [Enter request body](要求本文を入力してください) に要求のメッセージ本文を入力します。 Enter キーを押して、この要求メッセージを関数に送信します。 [Enter request body](要求本文を入力してください) 内の既定のテキストは、本文の形式を示します。 関数アプリに関数が含まれていない場合、このエラーと共に通知エラーが表示されます。

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

ローカルで関数を実行するために、キーを使用する必要はありません。

ローカル設定

Azure の関数アプリで実行する場合、関数に必要な設定はアプリ設定に安全に保存されます。 ローカル開発中は、これらの設定はその代わりに local.settings.json ファイルの Values オブジェクトに追加されます。 local.settings.json ファイルには、ローカルの開発ツールによって使用される設定も格納されます。

local.settings.json には接続文字列などのシークレットが含まれている場合があるため、リモート リポジトリには絶対に格納しないようにしてください。 ローカル設定の詳細については、「ローカル設定ファイル」を参照してください。

既定では、プロジェクトが Azure に発行されても、これらの設定は自動的に移行されません。 発行が完了すると、local.settings.json から Azure の関数アプリに設定を発行するオプションが提供されます。 詳細については、「アプリケーション設定を発行する」を参照してください。

ConnectionStrings 内の値は発行されません。

関数アプリケーションの設定値は、コード内で環境変数として読み取ることもできます。 詳細については、これらの言語固有のリファレンス記事の「環境変数」のセクションを参照してください。

Azure のアプリケーション設定

プロジェクトでの local.settings.json ファイルの設定は、Azure の関数アプリのアプリケーション設定と同じである必要があります。 local.settings.json に追加したすべての設定は、Azure の関数アプリにも追加デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。 プロジェクトを発行するときに、これらの設定は自動的にアップロードされません。 同様に、ポータル内の関数アプリで作成する設定はすべて、ローカル プロジェクトにダウンロードデフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

アプリケーション設定を発行する

Azure の関数アプリに必要な設定を発行する最も簡単な方法は、プロジェクトが発行された後に表示される [Upload settings](設定のアップロード) リンクを使用することです。

アプリケーション設定をアップロードするスクリーンショット。

設定を発行するには、Azure Functions: Upload Local Setting コマンド (コマンド パレット) を使用することもできます。 Azure のアプリケーション設定に個々の設定を追加するには、Azure Functions: Add New Setting コマンドを使用します。

ヒント

発行する前に local.settings.json ファイルを必ず保存してください。

ローカル ファイルが暗号化されている場合は、復号化され、発行されて、再び暗号化されます。 2 つの場所で値が競合する設定がある場合は、続行する方法を選択するように求められます。

既存のアプリ設定を Azure: Functions 領域で表示するには、サブスクリプション、関数アプリ、 [アプリケーションの設定] を展開します。

Visual Studio Code で関数アプリの設定を表示するスクリーンショット。

Azure から設定をダウンロードする

Azure でアプリケーション設定を作成した場合は、次のコマンドを使用してそれらを local.settings.json ファイルにダウンロードできます: [Azure Functions: リモート設定のダウンロード] コマンドを選択することもできます。

アップロードと同様に、ローカル ファイルが暗号化されている場合は、復号化され、更新されて、再び暗号化されます。 2 つの場所で値が競合する設定がある場合は、続行する方法を選択するように求められます。

関数の監視

関数をローカルで実行しているときは、ログ データがターミナル コンソールにストリーミングされます。 また、Functions プロジェクトが Azure の関数アプリで実行されているときにもログ データを取得できます。 Azure 内のストリーミング ログに接続すると、ほぼリアルタイムのログ データを確認できます。 関数アプリの動作をより完全に把握するために Application Insights を有効にすることをお勧めします。

ストリーミング ログ

アプリケーションを開発しているとき、ログ情報をほぼリアルタイムで参照すると役立つことがよくあります。 関数によって生成されているログ ファイルのストリームを表示できます。 この出力は、HTTP によってトリガーされた関数への要求のストリーミング ログの例です。

HTTP トリガーのストリーミング ログ出力を示すスクリーンショット。

詳細については、「ストリーミング ログ」を参照してください。

Azure で関数アプリのストリーミング ログを有効にするには:

  1. F1 キーを選択してコマンド パレットを開き、コマンド Azure Functions: [Start Streaming Logs](ログのストリーム配信を開始する) を検索して実行します。

  2. Azure で関数アプリを選択してから、[はい] を選択して関数アプリのアプリケーションのログ記録を有効にします。

  3. Azure で関数をトリガーします。 ログ データが Visual Studio Code の [出力] ウィンドウに表示されていることがわかります。

  4. 完了したら、コマンド Azure Functions: [ストリーミング ログの停止] を実行して関数アプリのログ記録を無効にすることを忘れないでください。

Note

ストリーミング ログでは、Functions ホストの 1 つのインスタンスしかサポートされません。 関数が複数のインスタンスにスケール調整されている場合、他のインスタンスからのデータはログ ストリームに表示されません。 Application Insights の Live Metrics Stream では、複数のインスタンスがサポートされます。 これもほぼリアルタイムですが、ストリーミング分析はサンプリングされたデータに基づいています。

Application Insights

関数アプリを Application Insights と統合することによって、関数の実行を監視することをお勧めします。 Azure portal で関数アプリを作成する場合、この統合は、既定で行われます。 Visual Studio の発行中に関数アプリを作成する場合は、Application Insights を自分で統合デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。 方法については、「Application Insights との統合を有効にする」を参照してください。

Application Insights を使用した監視の詳細については、「Azure Functions を監視する」を参照してください。

C# スクリプト プロジェクト

既定では、すべての C# プロジェクトは C# コンパイル済みクラス ライブラリ プロジェクトとして作成されます。 代わりに C# スクリプト プロジェクトを操作したい場合は、Azure Functions 拡張機能設定で、既定言語として C# スクリプトを選択デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。

  1. [ファイル][Preferences](ユーザー設定)[設定] を選択します。

  2. [ユーザー設定][拡張機能][Azure Functions] にアクセスします。

  3. C#ScriptAzure Function: Project Language から選択します。

これらの手順を完了した後、基盤となる Core Tools への呼び出しには、C# スクリプト (.csx) プロジェクト ファイルを生成して発行する --csx オプションが含まれます。 この既定の言語を指定すると、作成するすべてのプロジェクトは既定で C# スクリプト プロジェクトになります。 既定が設定されているときは、プロジェクト言語を選択するよう求められません。 他の言語でプロジェクトを作成するには、この設定を変更するか、ユーザーの settings.json ファイルから削除デフォルトのプロジェクト言語としてC#スクリプトを設定デフォルトのプロジェクト言語としてC#スクリプトを設定する必要があります。 この設定を削除すると、プロジェクトを作成するときに、言語を選択するよう再び求められます。

コマンド パレットのリファレンス

Azure Functions 拡張機能には、Azure の関数アプリと対話するための領域に便利なグラフィカル インターフェイスが用意されています。 同じ機能が、コマンド パレット (F1) のコマンドとしても使用できます。 これらの Azure Functions コマンドを使用できます。

Azure Functions のコマンド 説明
Add New Settings Azure に新しいアプリケーション設定を作成します。 詳細については、「アプリケーション設定を発行する」を参照してください。 また、この設定をローカル設定にダウンロードする必要がある場合もあります。
Configure Deployment Source Azure の関数アプリをローカル Git リポジトリに接続します。 詳細については、「Azure Functions の継続的なデプロイ」をご覧ください。
Connect to GitHub Repository 関数アプリを GitHub リポジトリに接続します。
Copy Function URL Azure で実行されている、HTTP によってトリガーされる関数のリモート URL を取得します。 詳細については、デプロイされた関数の URL を取得することに関するセクションを参照してください。
Create function app in Azure Azure のサブスクリプションに新しいアプリを作成します。 詳細については、Azure で新しい関数アプリを発行する方法に関するセクションを参照してください。
Decrypt Settings ローカル設定を復号化します。これは、Azure Functions: Encrypt Settings によって暗号化されています。
Delete Function App Azure のサブスクリプションから関数アプリを削除します。 App Service プランに他のアプリがない場合は、それも削除することを選択できます。 ストレージ アカウントやリソース グループなどの他のリソースは削除されません。 すべてのリソースを削除するには、代わりにリソース グループを削除してください。 ローカル プロジェクトには影響はありません。
Delete Function Azure の関数アプリから既存の関数を削除します。 この削除はローカル プロジェクトに影響を与えないため、代わりに、関数をローカルで削除してから、プロジェクトを再発行することを検討してください。
Delete Proxy Azure の関数アプリから Azure Functions プロキシを削除します。 プロキシについて詳しくは、「Azure Functions プロキシの操作」をご覧ください。
Delete Setting Azure の関数アプリの設定を削除します。 この削除は、local.settings.json ファイルの設定には影響を与えません。
Disconnect from Repo Azure の関数アプリとソース管理リポジトリの間の継続的デプロイ接続を削除します。
Download Remote Settings Azure の選択した関数アプリから local.settings.json ファイルに設定をダウンロードします。 ローカル ファイルが暗号化されている場合は、復号化され、更新されて、再び暗号化されます。 2 つの場所で値が競合する設定がある場合は、続行する方法を選択するように求められます。 このコマンドを実行する前に local.settings.json ファイルに変更を必ず保存してください。
Edit settings Azure の既存の関数アプリ設定の値を変更します。 このコマンドは、local.settings.json ファイルの設定に影響を与えません。
Encrypt settings ValuesValues 配列の個別の項目を暗号化します。 このファイルでは、IsEncryptedtrue に設定されます。これは、ローカル ランタイムが設定を使用する前に復号化することを指定します。 貴重な情報が漏洩するリスクを減らすために、ローカル設定を暗号化します。 Azure では、アプリケーション設定は常に、暗号化されて格納されます。
Execute Function Now 管理 API を使用して関数を手動で開始します。 このコマンドは、デバッグ中のローカルでのテスト、および Azure で実行されている関数に対するテストの両方に使用されます。 Azure 内の関数が作動すると、まず、拡張機能により、管理キーが自動的に取得されます。これは、Azure で関数を開始するリモート管理 API を呼び出すために使用されます。 API に送信されるメッセージの本文は、トリガーの種類によって異なります。 タイマー トリガーでは、データを渡す必要はありません。
Initialize Project for Use with VS Code 必要な Visual Studio Code プロジェクト ファイルを既存の Functions プロジェクトに追加します。 このコマンドは、Core Tools を使用して作成したプロジェクトを操作するために使用します。
Install or Update Azure Functions Core Tools ローカルで関数を実行するために使用される Azure Functions Core Tools をインストールまたは更新します。
Redeploy 接続された Git リポジトリから Azure の特定のデプロイにプロジェクト ファイルを再デプロイできます。 Visual Studio Code からローカル更新を再発行するには、プロジェクトを再発行します。
Rename Settings Azure の既存の関数アプリ設定のキー名を変更します。 このコマンドは、local.settings.json ファイルの設定に影響を与えません。 Azure で設定の名前を変更したら、それらの変更をローカル プロジェクトにダウンロードする必要があります。
Restart Azure で関数アプリを再起動します。 更新をデプロイしても関数アプリが再起動されます。
Set AzureWebJobsStorage AzureWebJobsStorage アプリケーション設定の値を設定します。 この設定は、Azure Functions によって必要になります。 これは、Azure で関数アプリが作成されるときに設定されます。
Start Azure の停止された関数アプリを起動します。
Start Streaming Logs Azure の関数アプリのストリーミング ログを開始します。 ロギング情報をほぼリアルタイムで確認する必要がある場合は、Azure でのリモート トラブルシューティング中にストリーミング ログを使用します。 詳細については、「ストリーミング ログ」を参照してください。
Stop Azure で実行されている関数アプリを停止します。
Stop Streaming Logs Azure の関数アプリのストリーミング ログを停止します。
Toggle as Slot Setting 有効になっている場合は、指定したデプロイ スロットに対してアプリケーション設定が保持されるようにします。
Uninstall Azure Functions Core Tools 拡張機能に必要な Azure Functions Core Tools を削除します。
Upload Local Settings local.settings.json ファイルから、選択した Azure の関数アプリに設定をアップロードします。 ローカル ファイルが暗号化されている場合は、復号化され、アップロードされて、再び暗号化されます。 2 つの場所で値が競合する設定がある場合は、続行する方法を選択するように求められます。 このコマンドを実行する前に local.settings.json ファイルに変更を必ず保存してください。
View Commit in GitHub 関数アプリがリポジトリに接続されているとき、特定のデプロイでの最新のコミットを表示します。
View Deployment Logs Azure の関数アプリへの具体的なデプロイ用のログを表示します。

次のステップ

Azure Functions Core Tools の詳細については、「Azure Functions Core Tools の操作」を参照してください。

.NET クラス ライブラリとしての関数の開発の詳細については、「Azure Functions C# developer reference (Azure Functions C# 開発者向けリファレンス)」を参照してください。 この記事は、Azure Functions でサポートされる各種バインドを宣言するための属性の使用例へのリンクも提供しています。