クイック スタート:Visual Studio を使用して Azure で初めての関数を作成するQuickstart: Create your first function in Azure using Visual Studio

この記事では、Visual Studio を使用して、HTTP 要求に応答する C# クラス ライブラリベースの関数を作成します。In this article, you use Visual Studio to create a C# class library-based function that responds to HTTP requests. コードをローカルでテストした後、Azure Functions のサーバーレス環境にデプロイします。After testing the code locally, you deploy it to the serverless environment of Azure Functions.

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。Completing this quickstart incurs a small cost of a few USD cents or less in your Azure account.

前提条件Prerequisites

このチュートリアルを完了するには、まず、Visual Studio 2019 をインストールします。To complete this tutorial, first install Visual Studio 2019. インストール時に [Azure の開発] ワークロードを確実に選択してください。Ensure you select the Azure development workload during installation. 代わりに Visual Studio 2017 を使用して Azure Functions プロジェクトを作成する場合は、まず、最新の Azure Functions ツールをインストールする必要があります。If you want to create an Azure Functions project by using Visual Studio 2017 instead, you must first install the latest Azure Functions tools.

Azure 開発ワークロードと共に Visual Studio をインストールする

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 you can publish to a function app in Azure. 関数アプリを使用すると、リソースの管理、デプロイ、スケーリング、および共有を容易にするための論理ユニットとして関数をグループ化できます。You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

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

  2. [新しいプロジェクトの作成] の検索ボックスに「functions」と入力し、Azure Functions テンプレートを選択してから、 [次へ] を選択します。In Create a new project, enter functions in the search box, choose the Azure Functions template, and then select Next.

  3. [新しいプロジェクトの構成] で、プロジェクトのプロジェクト名を入力し、 [作成] を選択します。In Configure your new project, enter a Project name for your project, and then select Create. 関数アプリ名は、C# 名前空間として有効である必要があります。そのため、アンダースコア、ハイフン、その他の英数字以外の文字は使用しないでください。The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. [新しい Azure Functions アプリケーションの作成] 設定で、次の表の値を使用します。For the Create a new Azure Functions application settings, use the values in the following table:

    設定Setting Value 説明Description
    Functions ランタイムFunctions runtime Azure Functions v3
    (.NET Core)
    Azure Functions v3
    (.NET Core)
    この値は、.NET Core 3.x をサポートする Azure Functions のバージョン 3.x ランタイムを使用する関数プロジェクトを作成します。This value creates a function project that uses the version 3.x runtime of Azure Functions, which supports .NET Core 3.x. Azure Functions 1.x では、.NET Framework がサポートされます。Azure Functions 1.x supports the .NET Framework. 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」をご覧ください。For more information, see Azure Functions runtime versions overview.
    関数テンプレートFunction template HTTP トリガーHTTP trigger この値は、HTTP 要求によってトリガーされる関数を作成します。This value creates a function triggered by an HTTP request.
    ストレージ アカウント (AzureWebJobsStorage)Storage account (AzureWebJobsStorage) ストレージ エミュレーターStorage emulator Azure Function にはストレージ アカウントが必要であるため、プロジェクトを Azure に発行するときに割り当てられるか、作成されます。Because an Azure Function requires a storage account, one is assigned or created when you publish your project to Azure. HTTP トリガーによって、Azure Storage アカウントの接続文字列が使用されることはありません。その他のすべてのトリガーの種類には、有効な Azure Storage アカウントの接続文字列が必要です。An HTTP trigger doesn't use an Azure Storage account connection string; all other trigger types require a valid Azure Storage account connection string.
    承認レベルAuthorization level 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. キーと承認の詳細については、「承認キー」と HTTP と Webhook のバインドに関するページをご覧ください。For more information about keys and authorization, see Authorization keys and HTTP and webhook bindings.

    Azure Functions プロジェクトの設定

    [承認レベル][匿名] に設定していることを確認します。Make sure you set the Authorization level to Anonymous. 関数の既定のレベルを選択した場合、関数エンドポイントにアクセスする要求で、関数キーを提示する必要があります。If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. [作成] を選択して、関数プロジェクトと HTTP トリガー関数を作成します。Select Create to create the function project and HTTP trigger function.

Visual Studio によってプロジェクトとクラスが作成されます。クラスの中には、HTTP トリガー関数型のスケルトン コードが含まれています。Visual Studio creates a project and class that contains boilerplate code for the HTTP trigger function type. スケルトン コードは、要求本文またはクエリ文字列の値を含む HTTP 応答を送信します。The boilerplate code sends an HTTP response that includes a value from the request body or query string. HttpTrigger属性は、関数が HTTP 要求によってトリガーされることを指定します。The HttpTrigger attribute specifies that the function is triggered by an HTTP request.

フォルダーの名前を変更するRename the function

FunctionName メソッド属性は、関数の名前を設定します。これは、既定では Function1 として生成されます。The FunctionName method attribute sets the name of the function, which by default is generated as Function1. このツールでは、プロジェクトを作成するときに既定の関数名をオーバーライドすることはできないため、ここで関数クラス、ファイル、およびメタデータに対してより適切な名前を指定します。Since the tooling doesn't let you override the default function name when you create your project, take a minute to create a better name for the function class, file, and metadata.

  1. エクスプローラーで Function1.cs ファイルを右クリックし、HttpExample.cs という名前に変更します。In File Explorer, right-click the Function1.cs file and rename it to HttpExample.cs.

  2. コードで Function1 クラスの名前を "HttpExample" に変更します。In the code, rename the Function1 class to `HttpExample'.

  3. Run という名前の HttpTrigger メソッドで、FunctionName メソッド属性の名前を HttpExample に変更します。In the HttpTrigger method named Run, rename the FunctionName method attribute to HttpExample.

関数の名前の変更が済んだので、この関数をローカル コンピューターでテストできるようになりました。Now that you've renamed the function, you can test it on your local computer.

関数をローカルで実行するRun the function locally

完全な Azure Functions ランタイムを使用してローカルで関数をテストできるように、Visual Studio は Azure Functions Core Tools と統合されます。Visual Studio integrates with Azure Functions Core Tools so that you can test your functions locally using the full Azure Functions runtime.

  1. 関数を実行するには、Visual Studio で F5 キーを押します。To run your function, press F5 in Visual Studio. ツールで HTTP 要求を処理できるように、ファイアウォールの例外を有効にすることが必要になる場合があります。You might need to enable a firewall exception so that the tools can handle HTTP requests. 承認レベルは、ローカルで関数を実行するときには適用されません。Authorization levels are never enforced when you run a function locally.

  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=<YOUR_NAME> を追加して、要求を実行します。Append the query string ?name=<YOUR_NAME> to this URL and run the request. 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次の図に示します。The following image shows the response in the browser to the local GET request returned by the function:

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

  4. デバッグを停止するには、Visual Studio で Shift キーを押しながら F5 キーを押します。To stop debugging, press Shift+F5 in Visual Studio.

関数がローカル コンピューター上で正常に動作することを確認したら、プロジェクトを Azure に発行します。After you've 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 サブスクリプションに関数アプリが存在する必要があります。Before you can publish your project, you must have a function app in your Azure subscription. 初めてプロジェクトを発行するときに、Visual Studio の発行機能によって、関数アプリが自動的に作成されます。Visual Studio publishing creates a function app for you the first time you publish your project.

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

  2. [発行先を選択] で、次の表で指定されている発行オプションを使用します。In Pick a publish target, use the publish options specified in the following table:

    オプションOption 説明Description
    Azure Functions 従量課金プランAzure Functions Consumption Plan 従量課金プランで実行される関数アプリを Azure クラウド環境に作成します。Create a function app in an Azure cloud environment that runs in a Consumption plan. 従量課金プランを使用する場合、支払いの対象になるのは関数アプリの実行のみです。When you use a Consumption plan, you pay only for executions of your functions app. 他のホスティング プランでは、コストが高くなります。Other hosting plans incur higher costs. 従量課金プラン以外のプランで実行する場合は、関数アプリのスケーリングを管理する必要があります。If you run in a plan other than a Consumption plan, you must manage the scaling of your function app.
    新規作成Create New 新しい関数アプリと関連リソースが、Azure に作成されます。A new function app, with related resources, is created in Azure.
    [既存のものを選択] を選択すると、Azure の既存の関数アプリ内のすべてのファイルがローカル プロジェクトのファイルによって上書きされます。If you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. このオプションは、既存の関数アプリへの更新を再発行する場合にのみ使用します。Use this option only when you republish updates to an existing function app.
    パッケージ ファイルから実行しますRun from package file 関数アプリは、Zip Deploy を使用して、Run-From-Package モードが有効な状態でデプロイされます。Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. パフォーマンスを向上させるこのデプロイは、関数を実行するために推奨される方法です。This deployment, which results in better performance, is the recommended way of running your functions.
    このオプションを使用しない場合は、関数アプリ プロジェクトがローカルで実行されないようにしたうえで、Azure に発行する必要があります。If you don't use this option, make sure to stop your function app project from running locally before you publish to Azure.

    発行プロファイルを作成する

  3. [プロファイルの作成] を選択します。Select Create Profile. まだ Visual Studio から Azure アカウントにサインインしていない場合は、 [サインイン] を選択します。If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. 無料の Azure アカウントを作成することもできます。You can also create a free Azure account.

  4. App Service: 新規作成 で、次の表で指定されている値を使用します。In App Service: Create new, use the values specified in the following table:

    設定Setting Value 説明Description
    名前Name グローバルに一意の名前Globally unique name 新しい関数アプリを一意に識別する名前。Name that uniquely identifies your new function app. この名前をそのまま使用するか、新しい名前を入力します。Accept this name or enter a new name. 有効な文字は、a-z0-9- です。Valid characters are: a-z, 0-9, and -.
    サブスクリプションSubscription 該当するサブスクリプションYour subscription 使用する Azure サブスクリプション。The Azure subscription to use. このサブスクリプションを承諾するか、ドロップダウン リストから新しいものを選択します。Accept this subscription or select a new one from the drop-down list.
    リソース グループResource group リソース グループの名前Name of your resource group 関数アプリを作成するリソース グループ。The resource group in which to create your function app. ドロップダウン リストから既存のリソース グループを選択するか、または [新規] を選択して新しいリソース グループを作成します。Select an existing resource group from the drop-down list or choose New to create a new resource group.
    ホスティング プランHosting Plan ホスティング プランの名前Name of your hosting plan [新規] を選択して、サーバーレス プランを構成します。Select New to configure a serverless plan. 必ず [サイズ] の下の [従量課金プラン] を選択してください。Make sure to choose the Consumption under Size. 従量課金プランで実行される関数アプリにプロジェクトを発行する場合は、関数アプリの実行に対してのみお支払いください。When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. 他のホスティング プランでは、コストが高くなります。Other hosting plans incur higher costs. [従量課金プラン] 以外のプランで実行する場合は、関数アプリのスケーリングを管理する必要があります。If you run in a plan other than Consumption, you must manage the scaling of your function app.
    場所Location App Service の場所Location of the app service 最寄りのリージョンまたは関数がアクセスする他のサービスの近くのリージョン内の [場所] を選択します。Choose a Location in a region near you or other services your functions access.
    Azure StorageAzure Storage 汎用ストレージ アカウントGeneral-purpose storage account Functions Runtime には Azure Storage アカウントが必須です。An Azure Storage account is required by the Functions runtime. [新規] を選択して汎用ストレージ アカウントを構成します。Select New to configure a general-purpose storage account. または、ストレージ アカウントの要件を満たす既存のアカウントを選択することもできます。You can also choose an existing account that meets the storage account requirements.

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

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

  6. [発行] を選択して、デプロイが完了するまで待ちます。Select Publish and wait for the deployment to complete.

    デプロイが完了すると、 [発行] タブに Azure の関数アプリのルート URL が表示されます。After the deployment completes the root URL of the function app in Azure is shown in the Publish tab.

  7. [発行] タブで、 [Cloud Explorer で管理する] を選択します。In the Publish tab, choose Manage in Cloud Explorer. これにより、Cloud Explorer で新しい関数アプリ Azure リソースが開かれます。This opens the new function app Azure resource in Cloud Explorer.

    発行成功のメッセージ

    Cloud Explorer を使用すると、Visual Studio でサイトのコンテンツを表示し、関数アプリを開始および停止し、Azure の関数アプリ リソースを直接および Azure portal で参照できます。Cloud Explorer lets you use Visual Studio to view the contents of the site, start and stop the function app, and browse directly to function app resources on Azure and in the Azure portal.

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

  1. Cloud Explorer では、新しい関数アプリが選択されているはずです。In Cloud Explorer, your new function app should be selected. そうでない場合は、自分のサブスクリプション > [App Services] の順に展開して、新しい関数アプリを選択します。If not, expand your subscription > App Services, and select your new function app.

  2. 関数アプリを右クリックし、 [ブラウザーで開く] を選択します。Right-click the function app and choose Open in Browser. これにより、関数アプリのルートが既定の Web ブラウザーで開かれ、関数アプリが実行されていることを示すページが表示されます。This opens the root of your function app in your default web browser and displays the page that indicates your function app is running.

    実行されている関数アプリ

  3. ブラウザーのアドレス バーで、ベース URL に文字列 /api/HttpExample?name=Functions を追加し、要求を実行します。In the address bar in the browser, append the string /api/HttpExample?name=Functions to the base URL and run the request.

    HTTP トリガー関数を呼び出す URL は、次の形式になります。The URL that calls your HTTP trigger function is in the following format:

    http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. この URL に移動し、関数によって返されたリモート GET 要求に対する応答がブラウザーに表示されます。次の例のような内容です。Go to this URL and you see a response in the browser to the remote GET request returned by the function, which looks like the following example:

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

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

このコレクションの他のクイックスタートは、このクイックスタートに基づいています。Other quickstarts in this collection build upon this quickstart. クイック スタート、チュートリアル、またはこのクイック スタートで作成したサービスのいずれかでの作業を引き続き行う場合は、リソースをクリーンアップしないでください。If you plan to work with subsequent quickstarts, tutorials, or with any of the services you have created in this quickstart, do not clean up the resources.

Azure の "リソース" とは、関数アプリ、関数、ストレージ アカウントなどのことを指します。Resources in Azure refer to function apps, functions, storage accounts, and so forth. これらは "リソース グループ" に分類されており、グループを削除することでグループ内のすべてのものを削除できます。They're grouped into resource groups, and you can delete everything in a group by deleting the group.

これらのクイックスタートを完了するためにリソースを作成しました。You created resources to complete these quickstarts. これらのリソースには、アカウントの状態サービスの価格に応じて課金される場合があります。You may be billed for these resources, depending on your account status and service pricing. リソースの必要がなくなった場合にそれらを削除する方法を、次に示します。If you don't need the resources anymore, here's how to delete them:

  1. Cloud Explorer で、自分のサブスクリプション > [App Services] の順に展開し、関数アプリを右クリックして、 [ポータルで開く] を選択します。In the Cloud Explorer, expand your subscription > App Services, right-click your function app, and choose Open in Portal.

  2. 関数アプリのページで、 [概要] タブを選択してから、 [リソース グループ] の下にあるリンクを選択します。In the function app page, select the Overview tab and then select the link under Resource group.

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

  3. [リソース グループ] ページで、含まれているリソースの一覧を確認し、削除するものであることを確認します。In the Resource group page, review the list of included resources, and verify that they're the ones you want to delete.

  4. [リソース グループの削除] を選択し、指示に従います。Select Delete resource group, and follow the instructions.

    削除には数分かかることがあります。Deletion may take a couple of minutes. 実行されると、通知が数秒間表示されます。When it's done, a notification appears for a few seconds. ページの上部にあるベルのアイコンを選択して、通知を表示することもできます。You can also select the bell icon at the top of the page to view the notification.

次のステップNext steps

このクイックスタートでは、Visual Studio を使用して、シンプルな HTTP トリガー関数を含む C# 関数アプリを作成し、Azure に発行しました。In this quickstart, you used Visual Studio to create and publish a C# function app in Azure with a simple HTTP trigger function.

次の記事に進み、Azure Storage キュー バインドを関数に追加する方法を学習してください。Advance to the next article to learn how to add an Azure Storage queue binding to your function: