Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie den Fehler beheben, wenn das Format des Ressourcennamens nicht mit dem Format des Ressourcentyps übereinstimmt.
Symptom
Beim Bereitstellen einer Vorlage wird eine Fehlermeldung mit dem Fehlercode InvalidTemplate. Die Meldung gibt an, dass der Ressourcentyp und der Name nicht übereinstimmen. Es wird vorgeschlagen, die Anzahl der Segmente im Namen festzulegen.
Ursache
Ein Ressourcentyp enthält den Namespace des Ressourcenanbieters und ein oder mehrere Segmente für Typen. Jedes Segment stellt eine Ebene in der Ressourcenhierarchie dar und wird durch einen Schrägstrich getrennt.
{resource-provider-namespace}/{type-segment-1}/{type-segment-2}
Der Ressourcenname enthält ein oder mehrere Segmente, die durch Schrägstriche getrennt sind. Die Anzahl der Segmente muss mit der Anzahl im Ressourcentyp übereinstimmen.
{name-segment-1}/{name-segment-2}
Wenn der Ressourcentyp und der Name eine andere Anzahl von Segmenten enthalten, erhalten Sie diesen Fehler.
Lösung
Stellen Sie sicher, dass Sie die Ebene des Ressourcentyps verstehen. Eine Schlüsseltresorressource verfügt z. B. über den vollqualifizierten Ressourcentyp .Microsoft.KeyVault/vaults Sie können den Ressourcenanbieternamespace (Microsoft.KeyVault) ignorieren und sich auf den Typ (Tresore) konzentrieren. Es besteht aus einem Segment.
Ein Schlüsseltresorgeheimnis ist eine untergeordnete Ressource des Tresors. Er verfügt über den vollqualifizierten Ressourcentyp .Microsoft.KeyVault/vaults/secrets Dieser Ressourcentyp verfügt über zwei Segmente (Tresore/Geheimnisse).
Wenn Sie einen Namen für den Schlüsseltresor angeben möchten, geben Sie nur ein Segment an, z. B examplevault123. . Um einen Namen für das Geheimnis anzugeben, geben Sie zwei Segmente an, z. B examplevault123/examplesecret. . Das erste Segment gibt den Schlüsseltresor an, in dem dieses Geheimnis gespeichert ist.
Das folgende Beispiel zeigt ein gültiges Format für den Ressourcennamen.
Es wird ein Fehler angezeigt, wenn Sie einen Namen mit mehr als einem Segment angegeben haben.
resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
name: 'contoso/examplevault123'
...
}
Wenn Sie eine untergeordnete Ressource innerhalb der übergeordneten Ressource schachteln, geben Sie nur das zusätzliche Segment an. Der vollständige Ressourcentyp und -name enthalten weiterhin die Werte aus der übergeordneten Ressource, aber sie werden für Sie erstellt. Im folgenden Beispiel lautet secrets der Typ und der Name examplesecret.
resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
name: 'examplevault123'
...
resource kvsecret 'secrets' = {
name: 'examplesecret'
properties: {
value: secretValue
}
}
}
Wenn Sie die untergeordnete Ressource außerhalb der übergeordneten Ressource definieren, geben Sie den vollständigen Ressourcentyp an. Geben Sie für JSON den vollständigen Ressourcennamen an.
Verwenden Sie für Bicep die parent Eigenschaft, und geben Sie den symbolischen Namen der übergeordneten Ressource an. Wenn Sie die übergeordnete Eigenschaft verwenden, wird der vollständige Name für Sie erstellt, sodass Sie den Namen der untergeordneten Ressource als einzelnes Segment angeben.
resource kvsecret 'Microsoft.KeyVault/vaults/secrets@2022-07-01' = {
name: 'examplesecret'
parent: kv
properties: {
value: secretValue
}
}
resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
name: 'examplevault123'
...
}
Weitere Informationen finden Sie unter Festlegen von Name und Typ für untergeordnete Ressourcen in Bicep oder Festlegen von Name und Typ für untergeordnete Ressourcen in ARM-Vorlagen.