指定した名前は既に使用されています
Azure に初期デプロイを行う際、次のようなエラーで失敗する可能性があります。
"指定した名前は既に使用されています"
この記事では、この問題を回避するためのいくつかの手法について説明します。
症状
.NET Aspire プロジェクトを Azureにデプロイすると、アプリ モデル 内のリソースが Azure リソースに変換されます。 一部の Azure リソースには、Azure App Configuration など、グローバル スコープの名前があり、すべてのインスタンスが [name].azconfig.io
グローバル名前空間にあります。
[name]
の値は、リソース グループ名に基づくランダムな文字と共に、.NET.NET Aspire リソース名から派生します。 ただし、生成された文字列は、App Configuration のリソース名の許容長を超える可能性があります。 その結果、一部の文字は、コンプライアンスを確保するために切り捨てられます。
グローバル名前空間で競合が発生すると、[name]+[truncated hash]
の組み合わせが十分に一意でないため、リソースのデプロイに失敗します。
考えられる解決策
回避策の 1 つは、リソースに appconfig
や storage
などの一般的な名前を使用しないようにすることです。 代わりに、よりわかりやすい具体的な名前を選択してください。 これにより、競合の可能性は低下しますが、完全には排除されません。 このような場合は、コールバック メソッドを使用して特定の名前を設定し、計算された文字列を完全に使用しないようにすることができます。
次の例を考えてみましょう。
var appConfig = builder.AddAzureAppConfiguration(
"appConfig",
(resource, construct, store) =>
{
store.AssignProperty(p => p.Name, "'noncalculatedname'");
});
.NET Aspire