次の方法で共有


指定した名前は既に使用されています

Azure に初期デプロイを行う際、次のようなエラーで失敗する可能性があります。

"指定した名前は既に使用されています"

この記事では、この問題を回避するためのいくつかの手法について説明します。

症状

.NET Aspire プロジェクトを Azureにデプロイすると、アプリ モデル 内のリソースが Azure リソースに変換されます。 一部の Azure リソースには、Azure App Configuration など、グローバル スコープの名前があり、すべてのインスタンスが [name].azconfig.io グローバル名前空間にあります。

[name] の値は、リソース グループ名に基づくランダムな文字と共に、.NET.NET Aspire リソース名から派生します。 ただし、生成された文字列は、App Configuration のリソース名の許容長を超える可能性があります。 その結果、一部の文字は、コンプライアンスを確保するために切り捨てられます。

グローバル名前空間で競合が発生すると、[name]+[truncated hash] の組み合わせが十分に一意でないため、リソースのデプロイに失敗します。

考えられる解決策

回避策の 1 つは、リソースに appconfigstorage などの一般的な名前を使用しないようにすることです。 代わりに、よりわかりやすい具体的な名前を選択してください。 これにより、競合の可能性は低下しますが、完全には排除されません。 このような場合は、コールバック メソッドを使用して特定の名前を設定し、計算された文字列を完全に使用しないようにすることができます。

次の例を考えてみましょう。

var appConfig = builder.AddAzureAppConfiguration(
    "appConfig",
    (resource, construct, store) =>
{
    store.AssignProperty(p => p.Name, "'noncalculatedname'");
});