Az erőforrásnév és a típuseltérés hibáinak elhárítása

Ez a cikk azt ismerteti, hogyan háríthatja el a hibát, ha az erőforrásnév formátuma nem egyezik meg az erőforrástípus formátumával.

Hibajelenség

Sablon üzembe helyezésekor hibaüzenet jelenik meg a hibakóddal InvalidTemplate. Az üzenet azt jelzi, hogy az erőforrás típusa és a név nem egyezik. Azt javasolja, hogy a névben adja meg a szegmensek számát.

Ok

Az erőforrástípus tartalmazza az erőforrás-szolgáltató névterét és egy vagy több szegmenst a típusokhoz. Minden szegmens az erőforráshierarchia egy szintjét jelöli, és perjel választja el egymástól.

{resource-provider-namespace}/{type-segment-1}/{type-segment-2}

Az erőforrás neve egy vagy több szegmenst tartalmaz perjelekkel elválasztva. A szegmensek számának meg kell egyeznie az erőforrástípus számával.

{name-segment-1}/{name-segment-2}

Ha az erőforrás típusa és neve eltérő számú szegmenst tartalmaz, a hibaüzenet jelenik meg.

Megoldás

Győződjön meg arról, hogy ismeri az erőforrástípus szintjét. Például egy kulcstartó-erőforrás teljes erőforrástípusa a következő Microsoft.KeyVault/vaults: . Figyelmen kívül hagyhatja az erőforrás-szolgáltató névterét (Microsoft.KeyVault), és a típusra (tárolókra) összpontosíthat. Egy szegmense van.

A kulcstartó titkos kódja a tároló gyermekerőforrása. Teljes erőforrástípusú Microsoft.KeyVault/vaults/secrets. Ez az erőforrástípus két szegmensből áll (tárolók/titkos kódok).

A kulcstartó nevének megadásához adjon meg csak egy szegmenst, például examplevault123: . A titkos kód nevének megadásához adjon meg két szegmenst, például examplevault123/examplesecret: . Az első szegmens azt a kulcstartót jelzi, ahol a titkos kód található.

Az alábbi példában az erőforrásnév érvényes formátuma látható.

resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
  name: 'examplevault123'
  ...
}

Hibaüzenet jelenik meg, ha egynél több szegmenst tartalmazó nevet adott meg.

resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
  name: 'contoso/examplevault123'
  ...
}

Ha gyermekerőforrást ágyaz be a szülőerőforrásba, csak az extra szegmenst adja meg. A teljes erőforrástípus és -név továbbra is tartalmazza a szülőerőforrás értékeit, de ezek az Ön számára vannak létrehozva. Az alábbi példában a típus és secrets a név .examplesecret

resource kv 'Microsoft.KeyVault/vaults@2022-07-01' = {
  name: 'examplevault123'
  ...
  resource kvsecret 'secrets' = {
    name: 'examplesecret'
    properties: {
     value: secretValue
    }
  }
}

Ha a szülőn kívül definiálja a gyermekerőforrást, adja meg a teljes erőforrástípust. JSON esetén adja meg a teljes erőforrásnevet.

A Bicep esetében használja a parent tulajdonságot, és adja meg a szülőerőforrás szimbolikus nevét. A szülőtulajdonság használatakor a teljes név létrejön, így a gyermekerőforrás nevét egyetlen szegmensként adja meg.

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'
  ...
}

További információt a Gyermekerőforrások nevének és típusának beállítása a Bicepben vagy A gyermekerőforrások nevének és típusának beállítása ARM-sablonokban című témakörben talál.