Share via


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. Egy 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 források

Ha inkább a gyermekerőforrásokról szeretne részletes útmutatót használni, 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ásnévhez és az erőforrástípushoz megadott értékek a gyermekerőforrás deklarálása alapján változnak. A teljes név és a 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 szinttel rendelkezik, 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 hierarchiában kettőnél több szint található, 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ípus szegmenseinek száma mindig eggyel 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 resources tulajdonsá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 legfelső szintaktikai szintjén kell megjelennie. A deklarációk tetszőlegesen mélyen ágyazhatók be, feltéve, hogy 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 tárfiókot mutat be a fájlszolgáltatás gyermekerőforrásával, a fájlszolgáltatás pedig gyermekerőforrással rendelkezik a fájlmegosztáshoz. A fájlszolgáltatás neve értékre default van állítva, típusa pedig értékre fileServicesvan állítva. A fájlmegosztás neve be van állítva exampleshare , a típusa pedig értékre sharesvan állítva.

resource storage 'Microsoft.Storage/storageAccounts@2022-09-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/fileServices és Microsoft.Storage/storageAccounts/fileServices/shares. Nem adja meg Microsoft.Storage/storageAccounts/ , mert a szülőerőforrás típusából és verziójá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 egy API-verziót határoz meg, a rendszer a megadott API-verziót használja.

A gyermekerőforrás neve és értékre defaultexampleshare van állítva, de a teljes nevek tartalmazzák a szülőneveket. Nem adja meg a vagy examplestoragedefault azokat, mert a szülőerőforrásból feltételezik ő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 egy 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 egy beágyazott erőforrásra a szülőerőforráson kívül szeretne hivatkozni, az erőforrást tartalmazó erőforrásnévvel és az operátorral kell minősíteni :: . Például egy tulajdonság gyermekerőforrásból való kimenetéhez:

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 hurkot szeretne használni egynél több gyermekerőforrás létrehozásához. Adja meg a szülőtulajdonságot a gyermeken, amelynek értéke a szülő szimbolikus nevére van beállítva. 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, a típust és a perjeleket úgy formázza, hogy tartalmazzák a szülő típusát és nevét.

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@2022-09-01' = {
  name: 'examplestorage'
  location: resourceGroup().location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

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

resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2022-09-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.

Teljes erőforrásnév a szülőn kívül

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éget nem lehet kikövetkeztetni, explicit módon kell beállítania.

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

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

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

Fontos

A teljes erőforrásnév és -típus beállítása nem az ajánlott módszer. Nem olyan biztonságos típus, 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