Visual Studio を使用して初めての関数を作成するCreate your first function using Visual Studio

Azure Functions を使用すると、最初に VM を作成したり Web アプリケーションを発行したりしなくても、サーバーレス環境でコードを実行できます。Azure Functions lets you execute your code in a serverless environment without having to first create a VM or publish a web application.

この記事では、Visual Studio 2017 Tools for Azure Functions を使用して、"hello world" 関数をローカルで作成してテストする方法を学習します。In this article, you learn how to use the Visual Studio 2017 tools for Azure Functions to locally create and test a "hello world" function. その後、関数コードを Azure に発行します。You then publish the function code to Azure. これらのツールは、Visual Studio 2017 の Azure 開発ワークロードの一部として利用できます。These tools are available as part of the Azure development workload in Visual Studio 2017.

Visual Studio プロジェクトの Azure Functions コード

このトピックには、同じ基本的な手順を示す動画が含まれています。This topic includes a video that demonstrates the same basic steps.

前提条件Prerequisites

このチュートリアルを完了するには、以下が必要です。To complete this tutorial:

  • Visual Studio 2017 バージョン 15.4 以降のバージョン (Azure 開発ワークロードを含む) をインストールします。Install Visual Studio 2017 version 15.4 or a later version, including the Azure development workload.

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

  • Azure Functions および WebJobs Tools を最新バージョンに更新します。Make sure you have updated to the most recent version of Azure Functions and WebJobs Tools. この操作を行うには、[拡張機能と更新プログラム][更新] > [Visual Studio Marketplace] の順に選択します。Do this under Updates > Visual Studio Marketplace in Extensions and Updates.

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

関数アプリ プロジェクトを作成するCreate a function app 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 の [新しい関数] ダイアログ

    設定Setting 推奨値Suggested value [説明]Description
    バージョンVersion Azure Functions v1Azure Functions v1
    (.NET Framework)(.NET Framework)
    これは、Azure Functions のバージョン 1 ランタイムを使用する関数を作成します。This creates a function project that uses the version 1 runtime of Azure Functions. .NET Core をサポートするバージョン 2 ランタイムは、現在プレビュー中です。The version 2 runtime, which supports .NET Core, is currently in preview. 詳細については、「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 匿名Anonymous 作成される関数を、すべてのクライアントがキーを使用せずにトリガーできます。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.

Visual Studio によってプロジェクトが作成されます。その中には、選択した関数の種類のスケルトン コードが含まれているクラスがあります。Visual Studio creates a project and in it a class that contains boilerplate code for the chosen function type. メソッドの FunctionName 属性は、関数の名前を設定します。The FunctionName attribute on the method sets the name of the function. HttpTrigger 属性は、関数が HTTP 要求によってトリガーされることを指定します。The HttpTrigger attribute specifies that the function is triggered by an HTTP request. スケルトン コードは、要求本文またはクエリ文字列の値を含む HTTP 応答を送信します。The boilerplate code sends an HTTP response that includes a value from the request body or query string. メソッドに適切な属性を適用することによって、関数に入力および出力バインディングを追加することができます。You can add input and output bindings to a function by applying the appropriate attributes to the method. 詳細については、Azure Functions C# 開発者向けリファレンスの「トリガーとバインド」のセクションを参照してください。For more information, see the Triggers and bindings section of the Azure Functions C# developer reference.

関数コード ファイル

関数プロジェクトと、HTTP によってトリガーされる関数を作成できたので、この関数をローカル コンピューターでテストすることができます。Now that you have created your function project and an HTTP-triggered function, you can test it on your local computer.

関数をローカルでテストするTest the function locally

Azure Functions Core Tools を使用すると、ローカルの開発用コンピューター上で Azure Functions プロジェクトを実行できます。Azure Functions Core Tools lets you run an 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.

  1. 関数をテストするには、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.

  2. Azure Functions のランタイムの出力から、関数の URL をコピーします。Copy the URL of your function from the Azure Functions runtime output.

    Azure ローカル ランタイム

  3. HTTP 要求の URL をブラウザーのアドレス バーに貼り付けます。Paste the URL for the HTTP request into your browser's address bar. この URL にクエリ文字列 ?name=<yourname> を追加して、要求を実行します。Append the query string ?name=<yourname> to this URL and execute the request. 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次に示します。The following shows the response in the browser to the local GET request returned by the function:

    ブラウザーでの関数 localhost の応答

  4. デバッグを停止するには、Visual Studio ツール バーの [停止] ボタンをクリックします。To stop debugging, click the Stop button on the Visual Studio toolbar.

関数がローカル コンピューター上で正常に動作することを確認した後、プロジェクトを Azure に発行します。After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Azure にプロジェクトを発行するPublish the project to Azure

プロジェクトを発行するには、Azure サブスクリプションに関数アプリがあることが必要です。You must have a function app in your Azure subscription before you can publish your project. 関数アプリは、Visual Studio から直接作成できます。You can create a function app right from Visual Studio.

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

    新しい関数アプリを発行する

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

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

    Azure ローカル ランタイム

    設定Setting 推奨値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 new plan. また、[地域] で、自分に近いか、または自分の関数がアクセスする他のサービスに近い [場所] を選択します。Also, choose a Location in a region near you or near other services your functions access.

    注意

    Functions ランタイムには Azure Storage アカウントが必要です。An Azure storage account is required by the Functions runtime. そのため、関数アプリを作成すると、新しい Azure Storage アカウントが作成されます。Because of this, a new Azure Storage account is created for you when you create a function app.

  4. [作成] をクリックして、これらの設定で Azure に関数アプリと関連リソースを作成し、関数プロジェクト コードをデプロイします。Click Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  5. デプロイが完了したら、[サイトの 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.

    Azure ローカル ランタイム

Azure で関数をテストするTest your function in Azure

  1. [発行プロファイル] ページから関数アプリのベース URL をコピーします。Copy the base URL of the function app from the Publish profile page. 関数をローカルでテストしたときに使用した URL の localhost:port 部分を新しいベース URL に置き換えます。Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL. 前と同様に、この URL にクエリ文字列 ?name=<yourname> を追加してから、要求を実行します。As before, make sure to append the query string ?name=<yourname> to this URL and execute the request.

    HTTP によってトリガーされる関数を呼び出す URL は、次の形式である必要があります。The URL that calls your HTTP triggered function should be in the following format:

     http://<functionappname>.azurewebsites.net/api/<functionname>?name=<yourname> 
    
  2. HTTP 要求のこの新しい URL をブラウザーのアドレス バーに貼り付けます。Paste this new URL for the HTTP request into your browser's address bar. 関数によって返されたリモート GET 要求に対するブラウザーでの応答を次に示します。The following shows the response in the browser to the remote GET request returned by the function:

    ブラウザーでの関数の応答

ビデオを見るWatch the video

次の手順Next steps

Visual Studio を使用して、HTTP によってトリガーされる単純な関数を含む C# 関数アプリを作成しました。You have used Visual Studio to create a C# function app with a simple HTTP triggered function.