Visual Studio を使用する Azure Functions の開発Develop Azure Functions using Visual Studio

Azure Functions Tools for Visual Studio 2017 は Visual Studio の拡張機能です。C# 関数の開発、テスト、および Azure へのデプロイを可能にします。Azure Functions Tools for Visual Studio 2017 is an extension for Visual Studio that lets you develop, test, and deploy C# functions to Azure. Azure Functions を初めて使用する場合は、詳細について、「Azure Functions の概要」を参照してください。If this experience is your first with Azure Functions, you can learn more at An introduction to Azure Functions.

Azure Functions Tools には、次のような利点があります。The Azure Functions Tools provides the following benefits:

  • ローカル開発用コンピューターで関数を編集、作成、および実行できます。Edit, build, and run functions on your local development computer.
  • Azure に直接 Azure Functions プロジェクトを発行できます。Publish your Azure Functions project directly to Azure.
  • WebJobs 属性を使用して、定義をバインドするために個別に function.json を維持するのではなく、C# コードで直接関数バインディングを宣言できます。Use WebJobs attributes to declare function bindings directly in the C# code instead of maintaining a separate function.json for binding definitions.
  • コンパイル済み C# 関数を開発およびデプロイできます。Develop and deploy pre-compiled C# functions. コンパイル済み関数では、C# スクリプト ベースの関数より優れたコールド スタート パフォーマンスが得られます。Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Visual Studio 開発のすべての利点を得ながら、C# で関数をコーディングできます。Code your functions in C# while having all of the benefits of Visual Studio development.

この記事では、Visual Studio 2017 用の Azure Functions Tools を使用して C# 関数を開発し、それを Azure に発行する方法に関する詳細情報を提供します。This article provides details about how to use the Azure Functions Tools for Visual Studio 2017 to develop C# functions and publish them to Azure. この記事を読む前に、Visual Studio 用の関数クイック スタートに関するページを完了する 必要があります。Before you read this article, you should complete the Functions quickstart for Visual Studio.

重要

同じ関数アプリにローカル開発とポータル開発を混在させないでください。Don't mix local development with portal development in the same function app. ローカル プロジェクトから関数アプリに発行すると、ポータルで開発した関数がデプロイ プロセスによって上書きされます。When you publish from a local project to a function app, the deployment process overwrites any functions that you developed in the portal.

前提条件Prerequisites

Azure Functions Tools は、Visual Studio 2017 バージョン 15.5 以降の Azure 開発ワークロードに含まれています。Azure Functions Tools is included in the Azure development workload of Visual Studio 2017 version 15.5, or a later version. Visual Studio 2017 のインストールには、必ず Azure 開発ワークロードを含めてください。Make sure you include the Azure development workload in your Visual Studio 2017 installation:

Visual Studio 2017 と Azure 開発ワークロードのインストール

Visual Studio が最新であり、Azure Functions ツールの最新バージョンを使用していることを確認します。Make sure that your Visual Studio is up-to-date and that you are using the most recent version of the Azure Functions tools.

その他の要件Other requirements

関数を作成してデプロイするには、以下も必要になります。To create and deploy functions, you also need:

  • 有効な Azure サブスクリプションAn active Azure subscription. Azure サブスクリプションがない場合は、無料アカウントを利用できます。If you don't have an Azure subscription, free accounts are available.

  • Azure Storage のアカウントAn Azure Storage account. ストレージ アカウントを作成する場合は、「ストレージ アカウントの作成」を参照してください。To create a storage account, see Create a storage account.

ツールのバージョンを確認するCheck your tools version

  1. [ツール] メニューの [拡張機能と更新プログラム] を選択します。From the Tools menu, choose Extensions and Updates. [インストール済み] > [ツール] メニューを展開し、[Azure Functions と Web ジョブ ツール] を選択します。Expand Installed > Tools and choose Azure Functions and Web Jobs Tools.

    Functions ツールのバージョンを確認する

  2. インストールされているバージョンを確認します。Note the installed Version. このバージョンとリリース ノートに記載されている最新バージョンを比較します。You can compare this version with the latest version listed in the release notes.

  3. インストールされているバージョンが古い場合は、次のセクションの説明に従って Visual Studio でツールを更新します。If your version is older, update your tools in Visual Studio as shown in the following section.

ツールを更新するUpdate your tools

  1. [拡張機能と更新プログラム] ダイアログで、[更新プログラム] > [Visual Studio Marketplace] を展開し、[Azure Functions と Web ジョブ ツール][更新] の順に選択します。In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Functions ツールのバージョンを更新する

  2. ツールの更新プログラムをダウンロードしたら、Visual Studio を終了し、VSIX インストーラーを使用してツールの更新プログラムを起動します。After the tools update is downloaded, close Visual Studio to trigger the tools update using the VSIX installer.

  3. インストーラーで [OK] を選択して開始し、[変更] を選択してツールを更新します。In the installer, choose OK to start and then Modify to update the tools.

  4. 更新が完了したら、[閉じる] を選択して Visual Studio を再起動します。After the update is complete, choose Close and restart Visual Studio.

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

Visual Studio の Azure Functions プロジェクト テンプレートでは、Azure の関数アプリに発行できるプロジェクトを作成します。The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. 関数アプリを使用すると、リソースを管理、デプロイ、および共有するための論理ユニットとして関数をグループ化できます。A function app lets you group functions as a logical unit for management, deployment, and sharing of resources.

  1. Visual Studio で、[ファイル] メニューから [新規] > [プロジェクト] の順に選択します。In Visual Studio, select New > Project from the File menu.

  2. [新しいプロジェクト] ダイアログで、[インストール済み] を選択し、[Visual C#] > [クラウド] の順に展開して [Azure Functions] を選択します。プロジェクトの名前を入力して、[OK] をクリックします。In the New Project dialog, select Installed, expand Visual C# > Cloud, select Azure Functions, type a Name for your project, and click OK. 関数アプリ名は、C# 名前空間として有効である必要があります。そのため、アンダースコア、ハイフン、その他の英数字以外の文字は使用しないでください。The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

    Visual Studio で関数を作成するための [新しいプロジェクト] ダイアログ

  3. 図の下の表に示した設定を使用してください。Use the settings specified in the table that follows the image.

    Visual Studio の [新しい関数] ダイアログ

    SettingSetting 推奨値Suggested value 説明Description
    バージョンVersion Azure Functions 2.xAzure Functions 2.x
    (.NET Core)(.NET Core)
    これは、.NET Core をサポートする Azure Functions のバージョン 2.x ランタイムを使用する関数プロジェクトを作成します。This creates a function project that uses the version 2.x runtime of Azure Functions which supports .NET Core. Azure Functions 1.x では、.NET Framework がサポートされます。Azure Functions 1.x supports the .NET Framework. 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」をご覧ください。For more information, see How to target Azure Functions runtime version.
    テンプレートTemplate HTTP トリガーHTTP trigger これは、HTTP 要求によってトリガーされる関数を作成します。This creates a function triggered by an HTTP request.
    ストレージ アカウントStorage account ストレージ エミュレーターStorage Emulator HTTP トリガーはストレージ アカウント接続を使用しません。An HTTP trigger doesn't use the Storage account connection. 他のすべてのトリガーの種類では、有効なストレージ アカウント接続文字列が必要です。All other trigger types require a valid Storage account connection string.
    アクセス権Access rights AnonymousAnonymous 作成される関数を、すべてのクライアントがキーを使用せずにトリガーできます。The created function can be triggered by any client without providing a key. この承認設定により、新しい関数のテストが容易になります。This authorization setting makes it easy to test your new function. キーと承認の詳細については、「Azure Functions における HTTP と webhook のバインド」の「承認キー」をご覧ください。For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.
  4. [OK] をクリックして、関数プロジェクトと、HTTP でトリガーされる関数を作成します。Click OK to create the function project and HTTP triggered function.

プロジェクト テンプレートでは、C# プロジェクトの作成、Microsoft.NET.Sdk.Functions NuGet パッケージのインストール、およびターゲット フレームワークの設定が行われます。The project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. Functions 1.x の対象は .NET Framework で、Functions 2.x の対象は .NET Standard です。Functions 1.x targets the .NET Framework, and Functions 2.x targets .NET Standard. 新しいプロジェクトには次のファイルが含まれます。The new project has the following files:

  • host.json:Functions のホストを構成できます。host.json: Lets you configure the Functions host. これらの設定は、ローカルでの実行時と Azure での実行時の両方に適用されます。These settings apply both when running locally and in Azure. 詳細については、host.json のリファレンスを参照してください。For more information, see host.json reference.

  • local.settings.json:関数をローカルで実行するときに使用される設定を保持します。local.settings.json: Maintains settings used when running functions locally. これらの設定は Azure では使用されず、Azure Functions Core Tools で使用されます。These settings are not used by Azure, they are used by the Azure Functions Core Tools. このファイルを使用して、関数で必要な変数のアプリ設定を指定します。 Use this file to specify app settings for variables required by your functions. プロジェクト内の関数のバインドで必要な各接続の Values 配列に新しい項目を追加します。Add a new item to the Values array for each connection required by the functions bindings in your project. 詳細については、Azure Functions Core Tools の記事のローカル設定ファイルに関する記事を参照してください。For more information, see Local settings file in the Azure Functions Core Tools article.

    重要

    local.settings.json ファイルにはシークレットを含めることができるため、それをプロジェクト ソース管理から除外する必要があります。Because the local.settings.json file can contain secrets, you must excluded it from your project source control. このファイルの [出力ディレクトリにコピー] 設定は、常に [新しい場合はコピーする] にする必要があります。The Copy to Output Directory setting for this file should always be Copy if newer.

詳細については、「関数クラス ライブラリ プロジェクト」を参照してください。For more information, see Functions class library project.

ローカル開発用のプロジェクトを構成するConfigure the project for local development

Functions ランタイムでは内部的に Azure Storage アカウントを使用します。The Functions runtime uses an Azure Storage account internally. HTTP と webhook 以外のすべてのトリガーの種類については、Values.AzureWebJobsStorage キーを有効な Azure Storage アカウントの接続文字列に設定する必要があります。For all trigger types other than HTTP and webhooks, you must set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. 関数アプリで、プロジェクトに必要な AzureWebJobsStorage 接続設定に Azure Storage エミュレーターを使用することもできます。Your function app can also use the Azure storage emulator for the AzureWebJobsStorage connection setting that is required by the project. エミュレーターを使用するには、AzureWebJobsStorage の値を UseDevelopmentStorage=true に設定します。To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. この設定は、デプロイの前に実際のストレージ接続に変更する必要があります。You must change this setting to an actual storage connection before deployment.

ストレージ アカウントの接続文字列を設定するには、次のようにします。To set the storage account connection string:

  1. Visual Studio で Cloud Explorer を開き、[ストレージ アカウント] > [Your Storage Account](ストレージ アカウント) を展開し、[プロパティ] を選択し、[プライマリ接続文字列] 値をコピーします。In Visual Studio, open Cloud Explorer, expand Storage Account > Your Storage Account, then select Properties and copy the Primary Connection String value.

  2. プロジェクトで、local.settings.json ファイルを開き、コピーした接続文字列に AzureWebJobsStorage キーの値を設定します。In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  3. 前の手順を繰り返し、関数に必要なその他のすべての接続について、Values 配列に一意のキーを追加します。Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

プロジェクトに関数を追加するAdd a function to your project

コンパイル済みの関数では、関数で使用されるバインディングはコードで属性を適用することで定義されます。In pre-compiled functions, the bindings used by the function are defined by applying attributes in the code. Azure Functions Tools を使用して提供されているテンプレートから関数を作成する場合は、これらの属性が適用されます。When you use the Azure Functions Tools to create your functions from the provided templates, these attributes are applied for you.

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[追加] > [新しいアイテム] の順に選択します。In Solution Explorer, right-click on your project node and select Add > New Item. [Azure 関数] を選択し、クラスの [名前] を入力して [追加] をクリックします。Select Azure Function, type a Name for the class, and click Add.

  2. トリガーを選択し、バインドのプロパティを設定して、[作成] をクリックします。Choose your trigger, set the binding properties, and click Create. 次の例は、Queue Storage によってトリガーされる関数を作成する場合の設定を示しています。The following example shows the settings when creating a Queue storage triggered function.

    キューによってトリガーされる関数の作成

    このトリガーの例では、QueueStorage という名前のキーと共に接続文字列を使用します。This trigger example uses a connection string with a key named QueueStorage. この接続文字列の設定は、local.settings.json ファイルで定義する必要があります。This connection string setting must be defined in the local.settings.json file.

  3. 新しく追加されたクラスを確認します。Examine the newly added class. FunctionName 属性に関連付けられている、静的な Run メソッドが表示されています。You see a static Run method, that is attributed with the FunctionName attribute. この属性は、メソッドが関数のエントリ ポイントであることを示します。This attribute indicates that the method is the entry point for the function.

    たとえば、次の C# クラスは基本的な Queue Storage トリガー関数を表します。For example, the following C# class represents a basic Queue storage triggered function:

    using System;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;
    
    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("QueueTriggerCSharp")]
            public static void Run([QueueTrigger("myqueue-items", Connection = "QueueStorage")]string myQueueItem, ILogger log)
            {
                log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
            }
        }
    }
    

    バインド固有の属性は、エントリ ポイント メソッドに指定された各バインド パラメーターに適用されます。A binding-specific attribute is applied to each binding parameter supplied to the entry point method. 属性ではパラメーターとしてバインド情報を取ります。The attribute takes the binding information as parameters. 前の例では、最初のパラメーターに QueueTrigger 属性が適用されています。これは、キューによってトリガーされる関数を意味します。In the previous example, the first parameter has a QueueTrigger attribute applied, indicating queue triggered function. キュー名および接続文字列の設定名は、パラメーターとして QueueTrigger 属性に渡されます。The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. 詳細については、Azure Functions での Azure Queue ストレージのバインドに関する記事を参照してください。For more information, see Azure Queue storage bindings for Azure Functions.

上記の手順を使用して、複数の関数を関数アプリ プロジェクトに追加できます。You can use the above procedure to add more functions to your function app project. プロジェクト内の各関数で異なるトリガーを使用できますが、1 つの関数には 1 つのトリガーのみを使用する必要があります。Each function in the project can have a different trigger, but a function must have exactly one trigger. 詳しくは、「Azure Functions でのトリガーとバインドの概念」をご覧ください。For more information, see Azure Functions triggers and bindings concepts.

バインドの追加Add bindings

トリガーと同じように、入力バインドと出力バインドも、バインド属性として関数に追加されます。As with triggers, input and output bindings are added to your function as binding attributes. 以下のように、関数にバインドを追加します。Add bindings to a function as follows:

  1. プロジェクトをローカル開発用に構成したことを確認します。Make sure you have configured the project for local development.

  2. 特定のバインディングに適した NuGet 拡張機能パッケージを追加します。Add the appropriate NuGet extension package for the specific binding. 詳細については、「Azure Functions でのトリガーとバインドの概念」の記事の「Visual Studio を使用したローカルでの C# 開発」を参照してください。For more information, see Local C# development using Visual Studio in the Triggers and Bindings article. バインド固有の NuGet パッケージの要件については、バインドの参照記事で確認できます。The binding-specific NuGet package requirements are found in the reference article for the binding. たとえば、Event Hubs トリガーのパッケージ要件については、Event Hubs のバインドの参照記事を参照してください。For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. バインドが必要なアプリ設定がある場合は、ローカル ファイルの設定Values コレクションに追加します。If there are app settings that the binding needs, add them to the Values collection in the local setting file. 関数がローカルで実行される場合は、これらの値が使用されます。These values are used when the function runs locally. 関数が Azure の関数アプリ で実行される場合は、関数アプリの設定が使用されます。When the function runs in the function app in Azure, the function app settings are used.

  4. 適切なバインド属性をメソッド シグネチャに追加します。Add the appropriate binding attribute to the method signature. 次の例では、キュー メッセージによって関数がトリガーされ、出力バインドによって、同じテキストの新しいキュー メッセージが別のキューに作成されます。In the following example, a queue message triggers the function, and the output binding creates a new queue message with the same text in a different queue.

    public static class SimpleExampleWithOutput
    {
        [FunctionName("CopyQueueMessage")]
        public static void Run(
            [QueueTrigger("myqueue-items-source", Connection = "AzureWebJobsStorage")] string myQueueItem, 
            [Queue("myqueue-items-destination", Connection = "AzureWebJobsStorage")] out string myQueueItemCopy,
            ILogger log)
        {
            log.LogInformation($"CopyQueueMessage function processed: {myQueueItem}");
            myQueueItemCopy = myQueueItem;
        }
    }
    

Queue Storage への接続は、AzureWebJobsStorage 設定から取得されます。The connection to Queue storage is obtained from the AzureWebJobsStorage setting. 詳しくは、特定のバインドの参照記事をご覧ください。For more information, see the reference article for the specific binding.

次の表は、Azure Functions の 2 つのメジャー バージョンのランタイムでサポートされているバインディングを示します。The following table shows the bindings that are supported in the two major versions of the Azure Functions runtime.

| typeType | 1.x1.x | 2.x12.x1 | トリガーTrigger | 入力Input | 出力Output |
| ---- | :-: | :-: | :------: | :---: | :----: | | Blob StorageBlob Storage ||||||   | Cosmos DBCosmos DB ||||||   | Event GridEvent Grid |||| | |   | Event HubsEvent Hubs |||| ||   | 外部ファイル 2External File2 ||| |||   | 外部テーブル 2External Table2 ||| |||   | HTTPHTTP |||| || | Microsoft Graph
Excel テーブル
Microsoft Graph
Excel tables
||| ||| | Microsoft Graph
OneDrive ファイル
Microsoft Graph
OneDrive files
||| ||| | Microsoft Graph
Outlook メール
Microsoft Graph
Outlook email
||| | || | Microsoft Graph
Events
Microsoft Graph
Events
|||||| | Microsoft Graph
Auth トークン
Microsoft Graph
Auth tokens
||| || | | Mobile AppsMobile Apps || | |||   | Notification HubsNotification Hubs ||| | || | Queue StorageQueue storage |||| ||   | SendGridSendGrid ||| | || | Service BusService Bus |||| ||   | Table StorageTable storage ||| |||   | TimerTimer |||| | | | TwilioTwilio ||| | || | WebhookWebhooks |||| ||   1 2.x では、HTTP と Timer を除くすべてのバインドを登録する必要があります。1 In 2.x, all bindings except HTTP and Timer must be registered. バインディング拡張機能を登録する」を参照してください。See Register binding extensions.

2 実験的 — サポート対象外で、将来破棄される可能性があります。2 Experimental — not supported and might be abandoned in the future.

関数のテストTesting functions

Azure Functions Core Tools を使用すると、ローカルの開発用コンピューター上で Azure Functions プロジェクトを実行できます。Azure Functions Core Tools lets you run Azure Functions project on your local development computer. Visual Studio から初めて関数を開始すると、これらのツールをインストールするよう求めるメッセージが表示されます。You are prompted to install these tools the first time you start a function from Visual Studio.

関数をテストするには、F5 キーを押します。To test your function, press F5. メッセージが表示されたら、Visual Studio からの要求に同意し、Azure Functions Core (CLI) ツールをダウンロードしてインストールします。If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. また、ツールで HTTP 要求を処理できるようにファイアウォールの例外を有効にすることが必要になる場合もあります。You may also need to enable a firewall exception so that the tools can handle HTTP requests.

プロジェクトを実行して、デプロイ済みの関数をテストする場合と同じように、コードをテストできます。With the project running, you can test your code as you would test deployed function. 詳細については、「Azure Functions のコードをテストするための戦略」を参照してください。For more information, see Strategies for testing your code in Azure Functions. デバッグ モードで実行している場合は、予期したとおりに Visual Studio でブレークポイントがヒットします。When running in debug mode, breakpoints are hit in Visual Studio as expected.

Azure Functions Core Tools の使用の詳細については、「Azure Functions をローカルでコーディングしてテストする」を参照してください。To learn more about using the Azure Functions Core Tools, see Code and test Azure functions locally.

Azure に発行するPublish to Azure

  1. ソリューション エクスプローラーで、プロジェクトを右クリックし、[発行] を選択します。In Solution Explorer, right-click the project and select Publish.

  2. [Azure 関数アプリ] を選択し、[新規作成] を選択して、[発行] を選択します。Select Azure Function App, choose Create New, and then select Publish.

    発行先の選択

    [Run from Zip](Zip から実行) を有効にすると、Azure の関数アプリは読み取り専用モードになり、デプロイ パッケージから直接実行されます。When you enable Run from Zip, your function app in Azure goes into read-only mode and is run directly from the deployment package. 詳細については、「Run your Azure Functions from a package file」(パッケージ ファイルから Azure Functions を実行する) を参照してください。For more information, see Run your Azure Functions from a package file.

    注意事項

    [既存のものを選択] を選択すると、Azure の既存の関数アプリ内のすべてのファイルがローカル プロジェクトのファイルによって上書きされます。When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. このオプションは、既存の関数アプリへの更新を再発行する場合にのみ使用します。Only use this option when republishing updates to an existing function app.

  3. まだ Visual Studio を Azure アカウントに接続していない場合は、[アカウントの追加...] を選択します。If you haven't already connected Visual Studio to your Azure account, select Add an account....

  4. [App Service の作成] ダイアログで、画像の下の表に指定されているようにホスティング設定を使用してください。In the Create App Service dialog, use the Hosting settings as specified in the table below the image:

    [App Service の作成] ダイアログ

    SettingSetting 推奨値Suggested value 説明Description
    アプリ名App Name グローバルに一意の名前Globally unique name 新しい関数アプリを一意に識別する名前。Name that uniquely identifies your new function app.
    サブスクリプションSubscription サブスクリプションの選択Choose your subscription 使用する Azure サブスクリプション。The Azure subscription to use.
    リソース グループResource Group myResourceGroupmyResourceGroup 関数アプリを作成するリソース グループの名前。Name of the resource group in which to create your function app. 新しいリソース グループを作成する場合は、[新規] を選択します。Choose New to create a new resource group.
    App Service プランApp Service Plan 従量課金プランConsumption plan [新規] をクリックしてサーバーレス プランを作成した後は、必ず [サイズ] の下の [従量課金プラン] を選択します。Make sure to choose the Consumption under Size after you click New to create a serverless plan. また、[地域] で、自分に近いか、または自分の関数がアクセスする他のサービスに近い [場所] を選択します。Also, choose a Location in a region near you or near other services your functions access. [従量課金プラン] 以外のプランで実行する場合は、関数アプリのスケーリングを管理する必要があります。When you run in a plan other than Consumption, you must manage the scaling of your function app.
    ストレージ アカウントStorage Account 汎用ストレージ アカウントGeneral purpose storage account Functions ランタイムには Azure Storage アカウントが必要です。An Azure storage account is required by the Functions runtime. [新規] をクリックして汎用ストレージ アカウントを作成します。Click New to create a general purpose storage account. または、ストレージ アカウントの要件を満たす既存のアカウントを使用することもできます。You can also use an existing account that meets the storage account requirements.
  5. [作成] をクリックして、これらの設定で Azure に関数アプリと関連リソースを作成し、関数プロジェクト コードをデプロイします。Click Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. デプロイが完了したら、[サイトの URL] の値を書き留めておきます。これが Azure における関数アプリのアドレスになります。After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    発行成功のメッセージ

Function App の設定Function app settings

Local.settings.json で追加したすべての設定は、Azure の関数アプリにも追加する必要があります。Any settings you added in the local.settings.json must be also added to the function app in Azure. プロジェクトを発行するとき、これらの設定は自動的にアップロードされません。These settings are not uploaded automatically when you publish the project.

Azure の関数アプリに必要な設定をアップロードする最も簡単な方法として、プロジェクトが正常に発行された後に表示される [アプリケーション設定の管理] リンクを使用できます。The easiest way to upload the required settings to your function app in Azure is to use the Manage Application Settings... link that is displayed after you successfully publish your project.

これにより、関数アプリの [アプリケーションの設定] ダイアログが表示され、ここで新しいアプリケーション設定を追加したり、既存の設定を変更したりできます。This displays the Application Settings dialog for the function app, where you can add new application settings or modify existing ones.

[ローカル] は local.settings.json ファイル内の設定値を表し、[リモート] は Azure での関数アプリにおける現在の設定です。Local represents a setting value in the local.settings.json file, and Remote is the current setting in the function app in Azure. 新しいアプリ設定を作成するには、[設定の追加] を選択します。Choose Add setting to create a new app setting. [ローカルから値を挿入する] リンクを使用して、設定値を [リモート] フィールドにコピーします。Use the Insert value from Local link to copy a setting value to the Remote field. [OK] を選択すると、保留中の変更がローカル設定ファイルと関数アプリに書き込まれます。Pending changes are written to the local settings file and the function app when you select OK.

以下のいずれかの方法を使用して、アプリケーション設定を管理することもできます。You can also manage application settings in one of these other ways:

関数の監視Monitoring functions

Azure で関数の実行を監視するための推奨される方法は、Azure Application Insights との統合です。The recommended way to monitor the execution of your function in Azure is by integrating with Azure Application Insights. Azure Portal で関数アプリを作成する場合、この統合は、既定で自動的に行われます。When you create a function app in the Azure portal, this integration is done for you by default. ただし、Visual Studio の発行中に関数アプリを作成する場合は、Azure で関数アプリの統合は実行されません。However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done. 代わりに、組み込みログが取得されますが、これは推奨されません。Instead, you get built-in logging, which isn't recommended.

Azure で関数アプリ用に Application Insights を有効にするには:To enable Application Insights for your function app in Azure:

  1. Azure Portal で Application Insights インスタンスを作成し、そのインストルメンテーション キーをコピーします。Create an Application Insights instance in the Azure portal and copy its instrumentation key. その方法については、「App Insights リソースを手動で接続する」を参照してください。To learn how, see Manually connect an App Insights resource.

  2. 関数アプリの設定に関するページの説明に従って、Azure の関数アプリの設定に APPINSIGHTS_INSTRUMENTATIONKEY という名前のアプリ設定を追加します。Add an app setting named APPINSIGHTS_INSTRUMENTATIONKEY to the function app settings in Azure, as described in Function app settings. このアプリ設定には、前の手順で作成したインストルメンテーション キーが含まれています。This app setting contains the instrumentation key that you created in the previous step.

  3. Azure の関数アプリから AzureWebJobsDashboard のアプリ設定を削除します。これにより、組み込みログが無効になります。Remove the AzureWebJobsDashboard app setting from the function app in Azure, which disables built-in logging.

詳細については、「Azure Functions を監視する」を参照してください。To learn more, see Monitor Azure Functions.

次の手順Next steps

Azure Functions Tools の詳細については、Visual Studio 2017 Tools for Azure Functions ブログ投稿のよく寄せられる質問を参照してください。For more information about Azure Functions Tools, see the Common Questions section of the Visual Studio 2017 Tools for Azure Functions blog post.

Azure Functions Core Tools の詳細については、「Azure Functions をローカルでコーディングしてテストする」を参照してください。To learn more about the Azure Functions Core Tools, see Code and test Azure functions locally.

.NET クラス ライブラリとしての関数の開発の詳細については、「Azure Functions C# developer reference (Azure Functions C# 開発者向けリファレンス)」を参照してください。To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference. この記事は、Azure Functions でサポートされる各種バインドを宣言するための属性の使用例にもリンクしています。This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.