Megosztás a következőn keresztül:


Gyermekerőforrások nevének és típusának beállítása a Bicepben

A gyermekerőforrások olyan erőforrások, amelyek csak egy másik erőforrás környezetében léteznek. Virtuálisgép-bővítmény például nem létezhet virtuális gép nélkül. A bővítményerőforrás a virtuális gép gyermeke.

Minden szülőerőforrás csak bizonyos erőforrástípusokat fogad el gyermekerőforrásként. Az erőforrástípusok hierarchiája a Bicep-erőforrásreferenciában érhető el.

Ez a cikk különböző módszereket mutat be a gyermekerőforrás deklarálásához.

Képzési erőforrások

Ha a gyermekerőforrásokat lépésről lépésre szeretné megismerni, olvassa el a Gyermek- és bővítményerőforrások üzembe helyezése a Bicep használatával című témakört.

Név- és típusminta

A Bicepben megadhatja a gyermekerőforrást a szülőerőforráson belül vagy a szülőerőforráson kívül. Az erőforrás nevéhez és erőforrástípusához megadott értékek a gyermekerőforrás deklarálása alapján változnak. A teljes név és típus azonban mindig ugyanazzal a mintával oldható fel.

A gyermekerőforrás teljes neve a következő mintát használja:

{parent-resource-name}/{child-resource-name}

Ha a hierarchia több mint két szintje van, ismételje meg a szülőneveket:

{parent-resource-name}/{child-level1-resource-name}/{child-level2-resource-name}

A gyermekerőforrás teljes típusa a következő mintát használja:

{resource-provider-namespace}/{parent-resource-type}/{child-resource-type}

Ha a hierarchia több mint két szintje van, ismételje meg a szülőerőforrás-típusokat:

{resource-provider-namespace}/{parent-resource-type}/{child-level1-resource-type}/{child-level2-resource-type}

Ha megszámolja a karakterek közötti / szegmenseket, a típusban lévő szegmensek száma mindig egynél több, mint a névben szereplő szegmensek száma.

Szülőerőforráson belül

Az alábbi példa a szülőerőforrás erőforrástulajdonságában található gyermekerőforrást mutatja be.

resource <parent-resource-symbolic-name> '<resource-type>@<api-version>' = {
  <parent-resource-properties>

  resource <child-resource-symbolic-name> '<child-resource-type>' = {
    <child-resource-properties>
  }
}

A beágyazott erőforrás-deklarációnak a szülőerőforrás szintaxisának legfelső szintjén kell megjelennie. A deklarációk tetszőlegesen mélyen ágyazhatók be, amennyiben minden szint a szülőerőforrás gyermektípusa.

Ha a szülőerőforrás-típuson belül van definiálva, a típus- és névértékeket perjelek nélküli szegmensként formázza. Az alábbi példa egy gyermekerőforrással rendelkező tárfiókot mutat be a fájlszolgáltatáshoz, és a fájlszolgáltatás gyermekerőforrással rendelkezik a fájlmegosztáshoz. A fájlszolgáltatás neve default, típusa pedig fileServices. A fájlmegosztás neve be van állítva exampleshare , típusa pedig a következőre sharesvan állítva: .

resource storage 'Microsoft.Storage/storageAccounts@2024-01-01' = {
  name: 'examplestorage'
  location: resourceGroup().location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }

  resource service 'fileServices' = {
    name: 'default'

    resource share 'shares' = {
      name: 'exampleshare'
    }
  }
}

A teljes erőforrástípusok továbbra is Microsoft.Storage/storageAccounts/fileServicesMicrosoft.Storage/storageAccounts/fileServices/sharesés . Nem adja meg Microsoft.Storage/storageAccounts/ , mert a szülőerőforrás-típusból és -verzióból feltételezzük. A beágyazott erőforrás opcionálisan deklarálhat egy API-verziót a szintaxis <segment>@<version>használatával. Ha a beágyazott erőforrás kihagyja az API-verziót, a rendszer a szülőerőforrás API-verzióját használja. Ha a beágyazott erőforrás API-verziót ad meg, a rendszer a megadott API-verziót használja.

A gyermekerőforrás nevei be vannak állítva, default de exampleshare a teljes nevek tartalmazzák a szülőneveket. Nem adja meg examplestorage , vagy default mert a szülőerőforrásból feltételezi őket.

A beágyazott erőforrások hozzáférhetnek a szülőerőforrás tulajdonságaihoz. Az ugyanazon szülőerőforrás törzsében deklarált egyéb erőforrások a szimbolikus nevek használatával hivatkozhatnak egymásra. Előfordulhat, hogy a szülőerőforrás nem fér hozzá a benne található erőforrások tulajdonságaihoz, ez a kísérlet ciklikus függőséget okozna.

Ha a szülőerőforráson kívül szeretne beágyazott erőforrásra hivatkozni, az erőforrás nevét és az :: operátort tartalmazó minősítéssel kell rendelkeznie. Ha például egy tulajdonságot egy gyermekerőforrásból szeretne kihozni:

output childAddressPrefix string = VNet1::VNet1_Subnet1.properties.addressPrefix

Külső szülőerőforrás

Az alábbi példa a szülőerőforráson kívüli gyermekerőforrást mutatja be. Ezt a módszert akkor használhatja, ha a szülőerőforrás nincs ugyanabban a sablonban üzembe helyezve, vagy ha egy ciklus használatával több gyermekerőforrást szeretne létrehozni. Adja meg a gyermek szülőtulajdonságát a szülő szimbolikus nevére beállított értékkel. Ezzel a szintaxissal továbbra is deklarálnia kell a teljes erőforrástípust, de a gyermekerőforrás neve csak a gyermek neve.

resource <parent-resource-symbolic-name> '<resource-type>@<api-version>' = {
  name: 'myParent'
  <parent-resource-properties>
}

resource <child-resource-symbolic-name> '<child-resource-type>@<api-version>' = {
  parent: <parent-resource-symbolic-name>
  name: 'myChild'
  <child-resource-properties>
}

Ha a szülőerőforráson kívül van definiálva, akkor a típust a szülőtípus és név megadásával, perjelekkel kell formázni.

Az alábbi példa egy olyan tárfiókot, fájlszolgáltatást és fájlmegosztást mutat be, amely mind a gyökérszinten van definiálva.

resource storage 'Microsoft.Storage/storageAccounts@2024-01-01' = {
  name: 'examplestorage'
  location: resourceGroup().location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource service 'Microsoft.Storage/storageAccounts/fileServices@2024-01-01' = {
  name: 'default'
  parent: storage
}

resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2024-01-01' = {
  name: 'exampleshare'
  parent: service
}

A gyermekerőforrás szimbolikus nevére való hivatkozás ugyanúgy működik, mint a szülőre való hivatkozás.

Szülőn kívüli teljes erőforrásnév

A gyermekerőforrás szülőn kívüli deklarálásakor a teljes erőforrásnevet és típust is használhatja. Nem állítja be a szülőtulajdonságot a gyermekerőforráson. Mivel a függőség nem vonható le, explicit módon kell beállítania.

resource storage 'Microsoft.Storage/storageAccounts@2024-01-01' = {
  name: 'examplestorage'
  location: resourceGroup().location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource service 'Microsoft.Storage/storageAccounts/fileServices@2024-01-01' = {
  name: 'examplestorage/default'
  dependsOn: [
    storage
  ]
}

resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2024-01-01' = {
  name: 'examplestorage/default/exampleshare'
  dependsOn: [
    service
  ]
}

Fontos

A teljes erőforrásnév és -típus megadása nem ajánlott módszer. Nem olyan biztonságos, mint a többi módszer egyikének használata. További információ: Linter-szabály: szülőtulajdonság használata.

Következő lépések