.NET 用Azure App Configuration クライアント ライブラリ - バージョン 1.2.1
Azure App Configuration は、開発者が自分のアプリケーションおよび機能設定を単純かつ安全に一元化するのに役立つマネージド サービスです。
クライアント ライブラリを使用して、次のApp Configurationを行います。
ソースコード | パッケージ (NuGet) | API リファレンス ドキュメント | 製品ドキュメント | サンプル
作業の開始
パッケージをインストールする
NuGet を使用して .NET 用のAzure App Configuration クライアント ライブラリをインストールします。
dotnet add package Azure.Data.AppConfiguration
前提条件
- Azure サブスクリプション。
- 既存の 構成ストア。
構成ストアを作成する必要がある場合は、Azure Portal または Azure CLI を使用できます。
Azure CLI を使用して、次のコマンドを使用して構成ストアを作成できます。
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
クライアントを認証する
App Configuration サービスと対話するには、Configuration Client クラスのインスタンスを作成する必要があります。 これを可能にするには、構成ストアの接続文字列が必要です。
資格情報の取得
次の Azure CLI スニペットを使用して、構成ストアから接続文字列を取得します。
az appconfig credential list --name <config-store-name>
または、Azure Portal から接続文字列を取得します。
ConfigurationClient の作成
接続文字列の値を取得したら、ConfigurationClient を作成できます。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
Azure Active Directory 資格情報を使用して ConfigurationClient を作成する
クライアント サブスクリプション キー認証は、このファースト ステップ ガイドのほとんどの例で使用されますが、Azure Id ライブラリを使用して Azure Active Directory で認証することもできます。 以下に示す DefaultAzureCredential プロバイダー、または Azure SDK で提供されているその他の資格情報プロバイダーを使用するには、Azure.Identity パッケージをインストールしてください。
dotnet add package Azure.Identity
また、 または "App Configuration Data Owner"
ロールをサービス プリンシパルに割り当てることで、新しい AAD アプリケーションを"App Configuration Data Reader"
登録し、Configuration Store へのアクセス権を付与する必要もあります。
AAD アプリケーションのクライアント ID、テナント ID、クライアント シークレットの値を環境変数として設定します(AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET)。
string endpoint = "<endpoint>";
var client = new ConfigurationClient(new Uri(endpoint), new DefaultAzureCredential());
主要な概念
構成設定
構成設定は、構成ストア内の基本的なリソースです。 最も単純な形式では、キーと値です。 ただし、変更可能なコンテンツ タイプやタグ フィールドなどの追加のプロパティがあり、値をさまざまな方法で解釈または関連付けることができます。
構成設定の Label プロパティを使用すると、構成設定を異なるディメンションに分割できます。 これらのディメンションはユーザー定義であり、任意の形式を取ることができます。 ラベルに使用するディメンションの一般的な例としては、領域、セマンティック バージョン、環境などがあります。 多くのアプリケーションには、アプリケーションが異なるディメンション間に存在する場合に、さまざまな値を持つ必要な構成キーのセットがあります。
たとえば、MaxRequests は "NorthAmerica" では 100、"WestEurope" では 200 にすることができます。 "NorthAmerica" というラベルを持つ MaxRequests という名前の構成設定を作成し、別の値のみを使用して "WestEurope" ラベルを付けることで、アプリケーションはこれら 2 つのディメンションで実行される構成設定をシームレスに取得できます。
スレッド セーフ
すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。
その他の概念
クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間
例
次のセクションでは、最も一般的な Configuration Service タスクの一部をカバーするいくつかのコード スニペットを示します。 両方で使用できる同期メソッドと非同期メソッドがあることに注意してください。
構成設定を作成する
構成ストアに格納する構成設定を作成します。 構成設定を格納するには、次の 2 つの方法があります。
- AddConfigurationSetting は、ストアに設定がまだ存在しない場合にのみ設定を作成します。
- SetConfigurationSetting は、設定が存在しない場合、または既存の設定をオーバーライドする場合に作成します。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
var settingToCreate = new ConfigurationSetting("some_key", "some_value");
ConfigurationSetting setting = client.SetConfigurationSetting(settingToCreate);
構成設定を取得する
GetConfigurationSetting を呼び出して、以前に格納された構成設定を取得します。 このスニペットでは、設定 "some_key" が構成ストアに存在することを前提としています。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
ConfigurationSetting setting = client.GetConfigurationSetting("some_key");
既存の構成設定を更新する
SetConfigurationSetting を呼び出して、既存の構成設定を更新します。 このスニペットでは、設定 "some_key" が構成ストアに存在することを前提としています。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
ConfigurationSetting setting = client.SetConfigurationSetting("some_key", "new_value");
構成設定を削除する
DeleteConfigurationSetting を呼び出して、既存の構成設定を削除します。 このスニペットでは、設定 "some_key" が構成ストアに存在することを前提としています。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
client.DeleteConfigurationSetting("some_key");
トラブルシューティング
さまざまな障害シナリオを診断する方法の詳細については、 トラブルシューティング ガイド を参照してください。
次のステップ
その他のサンプル コード
この GitHub リポジトリでは、いくつかのApp Configurationクライアント ライブラリ サンプルを使用できます。 次に例を示します。
- Hello world: 構成設定を作成および削除します。
- Hello world async with labels:ラベルを使用して構成設定を非同期に作成、更新、削除します。
- 構成設定を読み取り専用にする: 構成設定を読み取り専用にし、読み取り/書き込み状態に戻します。
- リビジョン履歴の読み取り: 変更された構成設定のリビジョン履歴を読み取ります。
- [変更された場合に設定を取得する]: 条件付き要求を使用して帯域幅を保存し、ローカル コピーと異なる場合にのみ設定を取得します。
- 変更されていない場合に設定を更新する: オプティミスティック コンカレンシーを使用して設定を更新し、ローカル更新プログラムが構成ストア内のリソースと同じバージョンに適用された場合にのみ、失われた更新を防止します。
- モック クライアントを作成する: テスト用にクライアントをモックします。
詳細については、 README のサンプルを参照してください。
共同作成
このライブラリのビルド、テスト、および投稿の詳細については、App Configuration CONTRIBUTING.md を参照してください。
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。