次の方法で共有


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

このクイック スタートでは、Azure App Configuration を使用して、コードの外部で Azure Functions アプリケーション設定を一元化および管理する方法について説明します。 .NET 構成プロバイダーの統合により、いくつかの簡単なコード変更だけで、追加の構成ソースとして App Configuration を追加できます。

前提条件

キーと値を追加する

App Configuration ストアに次のキーと値を追加し、[ラベル][コンテンツのタイプ] を既定値のままにします。 Azure portal または CLI を使用してストアにキーと値を追加する方法の詳細については、キーと値の作成に関する記事を参照してください。

Key
TestApp:Settings:Message Azure App Configuration からのデータ

関数アプリを作成する

Azure Functions (C#) テンプレートを選択して、Visual Studio を使用して Azure Functions アプリを作成します。 このテンプレートでは、プロジェクトの重要な設定を構成する手順について説明します。 詳細な手順については、 Visual Studio を使用した Azure Functions の開発に関するページを参照してください。

関数アプリを作成するときに、キー パラメーターの参照として次の表を使用します。

設定
関数作業者 .NET 8.0 分離
機能 HTTP トリガー
承認レベル アノニマス

Azure App Configuration は、 分離されたワーカー モデル または インプロセス モデルのいずれかで Azure Functions と共に使用できます。 このクイック スタートでは、分離されたワーカー モデルを例として使用します。 両方のモデルの完全なコード例は、 Azure App Configuration GitHub リポジトリにあります。

App Configuration ストアに接続する

Microsoft Entra ID (推奨) または接続文字列を使用して App Configuration ストアに接続できます。

  1. プロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。 [ 参照 ] タブで、次の NuGet パッケージの最新の安定バージョンを検索してプロジェクトに追加します。

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Azure.Identity
  2. Program.csを開き、次のようにコードを更新します。 AddAzureAppConfiguration メソッドを呼び出して、追加の構成ソースとして Azure App Configuration を追加します。

    DefaultAzureCredential を使って、App Configuration ストアに対する認証を行います。 手順に従い、あなたの資格情報にApp Configuration データリーダー役割を割り当ててください。 アプリケーションを実行する前に、アクセス許可が伝わるのに十分な時間をおいてください。

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*");
    });
    
  3. Function1.csを開き、次の名前空間を追加します。

    using Microsoft.Extensions.Configuration;
    

    依存関係の挿入を通じて IConfiguration のインスタンスを取得するようにコンストラクターを更新します。

    private readonly IConfiguration _configuration;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IConfiguration configuration, ILogger<Function1> logger)
    {
        _configuration = configuration;
        _logger = logger;
    }
    
  4. 構成から値を読み取るように Run メソッドを更新します。

    [Function("Function1")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string key = "TestApp:Settings:Message";
        string? message = _configuration[key];
    
        return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration.");
    }
    

関数をローカルでテストする

  1. 環境変数を設定します。

    AZURE_APPCONFIG_ENDPOINTという名前の環境変数を、Azure portal のストアの概要にある App Configuration ストアのエンドポイントに設定します。

    Windows コマンド プロンプトを使用する場合は、次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    PowerShell を使用する場合は、次のコマンドを実行します。

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    macOS または Linux を使用する場合は、次のコマンドを実行します。

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. F5 キーを押して関数をテストします。 メッセージが表示されたら、Visual Studio からの要求に同意し、Azure Functions Core (CLI) ツールをダウンロードしてインストールします。 また、ツールで HTTP 要求を処理できるように、ファイアウォールの例外を有効にすることが必要になる場合もあります。

  3. Azure Functions のランタイムの出力から、関数の URL をコピーします。

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

  4. HTTP 要求の URL をブラウザーのアドレス バーに貼り付けます。 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次の図に示します。

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

App Configuration 参照を使用してトリガー パラメーターを管理する

Azure Functions トリガーは、関数の呼び出し方法を定義します。 キュー名やデータベース名などのトリガー属性は、ホストの起動時に読み込まれ、Azure App Configuration から値を直接取得することはできません。 これらのパラメーターを管理するには、Azure Functions と App Service で使用できる App Configuration リファレンス機能を使用できます。

App Configuration リファレンス機能を使用すると、Azure App Configuration に格納されているキー値をアプリケーション設定から直接参照できます。 Azure Functions は起動時にこれらの参照を解決し、トリガー パラメーターを一元的かつ安全に管理できるようにします。

たとえば、キューによってトリガーされる関数アプリについて考えてみましょう。 トリガー属性でキュー名を直接指定する代わりに、Azure App Configuration に格納されているキー値を参照できます。

  1. Azure App Configuration ストアで、キュー名のキー値を追加します。

    Key
    TestApp:Storage:QueueName <ストレージ アカウント内のキュー名>
  2. 関数アプリで、Azure portal で [設定] ->[Environment 変数] ->[App settings] を選択し、App Configuration キーを参照するアプリケーション設定を作成します。

    名前
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)

    ヒント

    Azure App Configuration に複数のキー値がある場合は、Azure portal または CLI を使用して、 それらを Azure Functions への App Configuration 参照としてバッチでエクスポート できます。

  3. Azure Functions アプリのマネージド ID を有効にし、App Configuration ストアの App Configuration データ閲覧者 ロールを割り当てます。 App Configuration 参照を設定する方法の詳細については、「 App Service と Azure Functions で App Configuration 参照を使用する」を参照してください。

  4. アプリケーション設定を使用するように、キューによってトリガーされる関数を更新します。

    [Function("QueueTriggeredFunction")]
    public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message)
    {
        _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
    }
    

    実行時に、Azure Functions は、 %MyQueueName% プレースホルダーを Azure App Configuration に格納されている値に解決します。これにより、トリガー パラメーターを関数コードにハードコーディングすることなく一元的に管理できます。

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

この記事で作成したリソースを継続して使用しない場合は、ここで作成したリソース グループを削除して課金されないようにしてください。

重要

リソース グループを削除すると、元に戻すことができません。 リソース グループとそのすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 この記事のリソースを、保持したい他のリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのペインから個別に削除します。

  1. Azure portal にサインインし、[リソース グループ] を選択します。
  2. [名前でフィルター] ボックスにリソース グループの名前を入力します。
  3. 結果一覧でリソース グループ名を選択し、概要を表示します。
  4. [リソース グループの削除] を選択します。
  5. リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、[削除] を選択します。

しばらくすると、リソース グループとそのすべてのリソースが削除されます。

次のステップ

このクイック スタートでは、Azure App Configuration と Azure Functions アプリを統合しました。 関数アプリで構成設定を動的に更新できるようにする方法については、次のチュートリアルに進んでください。

Azure Functions アプリ内で Azure App Configuration の機能フラグを使用する方法については、次のチュートリアルに進んでください。

Azure マネージド ID を使用して App Configuration へのアクセスを効率化する方法については、次のチュートリアルに進んでください。