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 topic, you learn how to use the Visual Studio 2017 tools for Azure Functions to create and test a "hello world" function locally. その後、関数コードを Azure に発行します。You will then publish the function code to Azure. これらのツールは、Visual Studio 2017 バージョン 15.3 以降の Azure 開発ワークロードの一部として利用できます。These tools are available as part of the Azure development workload in Visual Studio 2017 version 15.3, or a later version.

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

前提条件Prerequisites

このチュートリアルを完了するには、以下をインストールしてください。To complete this tutorial, install:

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

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

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. Function App を使用すると、リソースの管理、デプロイ、および共有を容易にするためのロジック ユニットとして関数をグループ化できます。A function app lets you group functions as a logic unit for easier management, deployment, and sharing of resources.

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[追加] > [新しい項目] の順に選択します。Right mouse click on the project node in Solution Explorer, then choose Add > New Item. ダイアログ ボックスで [Azure 関数] を選択します。Choose Azure Function from the dialog box.

  2. [新しいプロジェクト] ダイアログで、[Visual C#] > [クラウド] ノードの順に展開し、[Azure Functions] を選択します。名前を入力して、[OK] をクリックします。In the New Project dialog, expand Visual C# > Cloud node, 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 で関数を作成するための [新しいプロジェクト] ダイアログ

プロジェクトが作成されたので、初めての関数を作成できます。Now that you have created the project, you can create your first function.

関数を作成するCreate the function

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

  2. [HttpTrigger] を選択し、[アクセス権] として [匿名] を選択して [OK] をクリックします。Select HttpTrigger, select Anonymous for Access rights, and click OK. 作成された関数は、任意のクライアントからの HTTP 要求によってアクセスされます。The function created is accessed by an HTTP request from any client.

    新しい Azure 関数の作成

    コード ファイルが、関数コードを実装するクラスを含むプロジェクトに追加されます。A code file is added to your project that contains a class that implements your function code. このコードは、値を受け取ってエコー バックするテンプレートに基づいています。This code is based on a template, which receives a name value and echos it back. FunctionName 属性は関数の名前を設定し、The FunctionName attribute sets the name of your function. HttpTrigger 属性は、関数をトリガーするメッセージを示します。The HttpTrigger attribute indicates the message that triggers the function.

    関数コード ファイル

HTTP によってトリガーされる関数を作成できたので、この関数をローカル コンピューターでテストすることができます。Now that you have created 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 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 click Publish.

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

  2. まだ Visual Studio を Azure アカウントに接続していない場合は、[アカウントの追加] をクリックします。If you haven't already connected Visual Studio to your Azure account, click 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 DescriptionDescription
    アプリ名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.
    App Service プランApp Service Plan 従量課金プランConsumption plan 新しいプランを作成する場合は、必ず [サイズ] の下の [重量課金プラン] を選択してください。Make sure to choose the Consumption under Size when you create a new plan.
    ストレージ アカウントStorage account グローバルに一意の名前Globally unique name 既存のストレージ アカウントを使用するか、新しいストレージ アカウントを作成します。Use an existing storage account or create a new one.
  4. [作成] をクリックして、これらの設定で Azure に関数アプリを作成します。Click Create to create a function app in Azure with these settings. プロビジョニングが完了したら、サイト URL の値を書き留めておきます。これが Azure における関数アプリのアドレスになります。After the provisioning 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 looks like this:

     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:

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

次のステップNext steps

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