クイック スタート:Azure App Configuration を使用して Azure Functions アプリを作成するQuickstart: Create an Azure Functions app with Azure App Configuration

このクイックスタートでは、コードとは別にすべてのアプリケーション設定のストレージと管理を一元化するために、Azure App Configuration サービスを Azure Functions アプリに組み込みます。In this quickstart, you incorporate the Azure App Configuration service into an Azure Functions app to centralize storage and management of all your application settings separate from your code.

前提条件Prerequisites

App Configuration ストアを作成するCreate an App Configuration store

  1. 新しい App Configuration ストアを作成するには、Azure portal にサインインします。To create a new App Configuration store, sign in to the Azure portal. ホーム ページの左上にある [+ リソースの作成] を選択します。In the upper-left corner of the home page, select Create a resource. [Marketplace を検索] ボックスに「App Configuration」と入力し、Enter キーを押します。In the Search the Marketplace box, enter App Configuration and select Enter.

    App Configuration を検索する

  2. 検索結果の [アプリ構成] を選択し、 [作成] を選択します。Select App Configuration from the search results, and then select Create.

    [作成] を選択します

  3. [アプリ構成] > [作成] ウィンドウで、次の設定を入力します。On the App Configuration > Create pane, enter the following settings:

    設定Setting 推奨値Suggested value 説明Description
    リソース名Resource name グローバルに一意の名前Globally unique name App Configuration ストア リソースに使用する一意のリソース名を入力します。Enter a unique resource name to use for the App Configuration store resource. 名前は 5 から 50 文字の文字列で、数字、英字、- 文字のみを使用する必要があります。The name must be a string between 5 and 50 characters and contain only numbers, letters, and the - character. 名前の先頭または末尾を - 文字にすることはできません。The name can't start or end with the - character.
    サブスクリプションSubscription 該当するサブスクリプションYour subscription App Configuration のテストに使用する Azure サブスクリプションを選択します。Select the Azure subscription that you want to use to test App Configuration. アカウントにサブスクリプションが 1 つしかない場合は自動的に選択されるため、 [サブスクリプション] の一覧は表示されません。If your account has only one subscription, it's automatically selected and the Subscription list isn't displayed.
    リソース グループResource group AppConfigTestResourcesAppConfigTestResources App Configuration ストア リソースのリソース グループを選択または作成します。Select or create a resource group for your App Configuration store resource. このグループで複数のリソースをまとめておくと、そのリソース グループを削除することで複数のリソースを同時に削除できるため、便利です。This group is useful for organizing multiple resources that you might want to delete at the same time by deleting the resource group. 詳細については、リソース グループを使用した Azure リソースの管理に関するページを参照してください。For more information, see Use resource groups to manage your Azure resources.
    LocationLocation 米国中部Central US [場所] を使用して、アプリ構成ストアがホストされている地理的位置を指定します。Use Location to specify the geographic location in which your app configuration store is hosted. 最高のパフォーマンスを得るには、アプリケーションの他のコンポーネントと同じリージョンにリソースを作成します。For the best performance, create the resource in the same region as other components of your application.
    [価格レベル]Pricing tier FreeFree 目的の価格レベルを選択します。Select the desired pricing tier. 詳細については、App Configuration の価格のページを参照してください。For more details, please see the App Configuration pricing page.

    App Configuration ストア リソースを作成する

  4. 作成 を選択します。Select Create. デプロイには数分かかることがあります。The deployment might take a few minutes.

  5. デプロイが完了したら、 [設定] > [アクセス キー] を選択します。After the deployment finishes, select Settings > Access Keys. 接続文字列の読み取り専用の主キーをメモします。Make a note of the primary read-only key connection string. この接続文字列は、後で、作成した App Configuration ストアと通信するようにアプリケーションを構成する際に使用します。You'll use this connection string later to configure your application to communicate with the App Configuration store that you created.

  1. [Configuration Explorer](構成エクスプローラー) > [+ 作成] の順に選択して、次のキーと値のペアを追加します。Select Configuration Explorer > + Create to add the following key-value pairs:

    KeyKey ValueValue
    TestApp:Settings:MessageTestApp:Settings:Message Azure App Configuration からのデータData from Azure App Configuration

    [ラベル][コンテンツの種類] は、現時点では空にしておきます。Leave Label and Content Type empty for now.

関数アプリを作成するCreate a Functions app

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. 関数アプリを使用すると、リソースの管理、デプロイ、スケーリング、および共有を容易にするための論理ユニットとして関数をグループ化できます。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 の [ファイル] メニューで、 [新規作成] > [プロジェクト] を選択します。In Visual Studio, on the File menu, select New > Project.

  2. [新しいプロジェクトの作成] ダイアログ ボックスで functions を検索して [Azure Functions] テンプレートを選択し、 [次へ] を選択します。In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. プロジェクトの名前を入力し、 [作成] を選択します。Enter a name for your project, and 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 アプリケーションの作成] で、以下のオプションを使用します。In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core)Azure Functions v2 (.NET Core)
    • HTTP トリガーHTTP trigger
    • [ストレージ アカウント] : ストレージ エミュレーターStorage Account: Storage Emulator
    • 承認レベル: AnonymousAuthorization level: Anonymous
    オプションOption 推奨値Suggested value 説明Description
    Functions ランタイムFunctions runtime Azure Functions 2.x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    この設定で、.NET Core をサポートする Azure Functions のバージョン 2.x ランタイムを使用する関数プロジェクトが作成されます。This setting 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 Target Azure Functions runtime version.
    関数テンプレートFunction template HTTP トリガーHTTP trigger この設定で、HTTP 要求によってトリガーされる関数が作成されます。This setting creates a function triggered by an HTTP request.
    ストレージ アカウントStorage Account ストレージ エミュレーターStorage Emulator HTTP トリガーは Azure Storage アカウント接続を使用しません。An HTTP trigger doesn't use the Azure Storage account connection. 他のすべてのトリガーの種類では、有効なストレージ アカウント接続文字列が必要です。All other trigger types require a valid Storage account connection string. Functions にはストレージ アカウントが必要であるため、プロジェクトを Azure に発行するときに割り当てられるか、作成されます。Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    承認レベル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. キーと承認の詳細については、「Azure Functions における HTTP と webhook のバインド」の「承認キー」をご覧ください。For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    注意

    承認レベルAnonymous に設定していることを確認します。Make sure you set the Authorization level to Anonymous. Function の既定のレベルを選択した場合、関数エンドポイントにアクセスする要求で、関数キーを提示する必要があります。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-triggered function.

App Configuration ストアに接続するConnect to an App Configuration store

  1. プロジェクトを右クリックし、 [NuGet パッケージの管理] を選択します。Right-click your project, and select Manage NuGet Packages. [参照] タブで Microsoft.Extensions.Configuration.AzureAppConfiguration NuGet パッケージを検索し、プロジェクトに追加します。On the Browse tab, search for and add the Microsoft.Extensions.Configuration.AzureAppConfiguration NuGet package to your project. 見つからない場合は、 [プレリリースを含める] チェック ボックスをオンにします。If you can't find it, select the Include prerelease check box.

  2. Function1.cs を開き、.Net Core 構成および App Configuration 構成プロバイダーの名前空間を追加します。Open Function1.cs, and add the namespaces of the .NET Core configuration and the App Configuration configuration provider.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. IConfiguration のシングルトン インスタンスを作成するために、Configuration という名前の static プロパティを追加します。Add a static property named Configuration to create a singleton instance of IConfiguration. AddAzureAppConfiguration() を呼び出して App Configuration に接続するための static コンストラクターを追加します。Then add a static constructor to connect to App Configuration by calling AddAzureAppConfiguration(). これによって、アプリケーションの起動時に一度だけ構成が読み込まれます。This will load configuration once at the application startup. 以後、すべての Functions 呼び出しについて、同じ構成インスタンスが使用されます。The same configuration instance will be used for all Functions calls later.

    private static IConfiguration Configuration { set; get; }
    
    static Function1()
    {
        var builder = new ConfigurationBuilder();
        builder.AddAzureAppConfiguration(Environment.GetEnvironmentVariable("ConnectionString"));
        Configuration = builder.Build();
    }
    
  4. 構成から値を読み取るように Run メソッドを更新します。Update the Run method to read values from the configuration.

    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        string keyName = "TestApp:Settings:Message";
        string message = Configuration[keyName];
    
        return message != null
            ? (ActionResult)new OkObjectResult(message)
            : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration.");
    }
    

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

  1. ConnectionString という名前の環境変数に、App Configuration ストアへのアクセス キーを設定します。Set an environment variable named ConnectionString, and set it to the access key to your App Configuration store. Windows コマンド プロンプトを使用する場合は、次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。If you use the Windows command prompt, run the following command and restart the command prompt to allow the change to take effect:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Windows PowerShell を使用する場合は、次のコマンドを実行します。If you use Windows PowerShell, run the following command:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

    macOS または Linux を使用する場合は、次のコマンドを実行します。If you use macOS or Linux, run the following command:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. F5 キーを押して関数をテストします。Press F5 to test your function. メッセージが表示されたら、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 might also need to enable a firewall exception so that the tools can handle HTTP requests.

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

    クイック スタート: VS での関数のデバッグ

  4. HTTP 要求の URL をブラウザーのアドレス バーに貼り付けます。Paste the URL for the HTTP request into your browser's address bar. 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次の図に示します。The following image shows the response in the browser to the local GET request returned by the function.

    クイック スタート: ローカル環境での関数の起動

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

次のチュートリアルに進む場合は、このクイックスタートで作成したリソースを再利用できるよう残しておいてください。If you plan to continue to the next tutorial, keep the resources you created in this quickstart for that you can reuse them.

クイック スタートのサンプル アプリケーションの使用を終える場合は、課金を避けるために、このクイック スタートで作成した Azure リソースを削除することができます。If you're finished with the quickstart sample application, delete the Azure resources you created in this quickstart to avoid charges.

重要

リソース グループを削除すると、元に戻すことができません。Deleting a resource group is irreversible. リソース グループとそのすべてのリソースは完全に削除されます。The resource group and all the resources in it are permanently deleted. 間違ったリソース グループやリソースをうっかり削除しないようにしてください。Make sure that you don't accidentally delete the wrong resource group or resources. このサンプルをホストするためのリソースを、保持したいリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのウィンドウから個別に削除します。If you created the resources for hosting this sample inside a resource group that contains resources you want to keep, delete each resource individually from its respective pane instead of deleting the resource group.

  1. Azure portal にサインインし、 [リソース グループ] を選択します。Sign in to the Azure portal, and select Resource groups.
  2. [名前でフィルター] ボックスにリソース グループの名前を入力します。In the Filter by name box, enter the name of your resource group.
  3. 結果一覧からリソース グループを選択し、行を右クリックするか省略記号 ( ... ) ボタンを使用してコンテキスト メニューを開きます。In the result list, select the resource group, and either right-click the row or use the ellipsis (...) button to open the context menu.
  4. [リソース グループの削除] を選択します。Select Delete resource group.
  5. リソース グループの削除の確認を求めるメッセージが表示されます。You're asked to confirm the deletion of the resource group. 確認のためにリソース グループの名前を入力し、 [削除] を選択します。Enter the name of your resource group to confirm, and select Delete.

しばらくすると、リソース グループとそのすべてのリソースが削除されます。After a few moments, the resource group and all its resources are deleted.

次のステップNext steps

このクイックスタートでは、新しい App Configuration ストアを作成して、App Configuration プロバイダーから Azure Functions アプリと共に使用しました。In this quickstart, you created a new App Configuration store and used it with an Azure Functions app via the App Configuration provider. 構成設定を動的に更新するように Azure Functions アプリを構成する方法については、次のチュートリアルに進んでください。To learn how to configure your Azure Functions app to dynamically refresh configuration settings, continue to the next tutorial.