Erőforrás-függőségek a Bicepben
Az erőforrások üzembe helyezésekor előfordulhat, hogy bizonyos erőforrásokat más erőforrások előtt kell üzembe helyezni. Például egy logikai SQL-kiszolgálóra van szüksége az adatbázis üzembe helyezése előtt. Ezt a kapcsolatot úgy hozhatja létre, hogy az egyik erőforrást a másik erőforrástól függőként jelöli meg. Az erőforrás üzembe helyezésének sorrendje kétféleképpen van meghatározva: implicit függőség és explicit függőség
Az Azure Resource Manager kiértékeli az erőforrások közötti függőségeket, és a függő sorrendben helyezi üzembe őket. Ha az erőforrások között nincs függőségi viszony, akkor a Resource Manager párhuzamosan helyezi üzembe azokat. Csak olyan erőforrások függőségeit kell definiálnia, amelyek ugyanabban a Bicep-fájlban vannak üzembe helyezve.
Implicit függőség
Implicit függőség akkor jön létre, ha egy erőforrás-deklaráció egy másik erőforrásra hivatkozik ugyanabban az üzembe helyezésben. Az alábbi példában otherResource
lekér egy tulajdonságot a következőből exampleDnsZone
: . A nevű otherResource
erőforrás implicit módon függ a függvénytől exampleDnsZone
.
resource exampleDnsZone 'Microsoft.Network/dnsZones@2023-07-01-preview' = {
name: 'myZone'
location: 'global'
}
resource otherResource 'Microsoft.Example/examples@2024-05-01' = {
name: 'exampleResource'
properties: {
// get read-only DNS zone property
nameServers: exampleDnsZone.properties.nameServers
}
}
A beágyazott erőforrások implicit függőséget is tartalmaznak a benne található erőforrástól.
resource myParent 'My.Rp/parentType@2024-05-01' = {
name: 'myParent'
location: 'West US'
// implicit dependency on 'myParent'
resource myChild 'childType' = {
name: 'myChild'
}
}
A szülőtulajdonságokat tartalmazó erőforrás implicit függőséget tartalmaz a szülőerőforrástól. A szülőerőforrástól függ, a többi gyermekerőforrástól nem.
Az alábbi példa egy tárfiókot és egy fájlszolgáltatást mutat be. A fájlszolgáltatás implicit függőséget biztosít a tárfióktól.
resource storage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource service 'Microsoft.Storage/storageAccounts/fileServices@2023-04-01' = {
name: 'default'
parent: storage
}
resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2023-04-01' = {
name: 'exampleshare'
parent: service
}
Ha implicit függőség létezik, ne adjon hozzá explicit függőséget.
A beágyazott erőforrásokról további információt a Gyermekerőforrások nevének és típusának megadása a Bicepben című témakörben talál.
Explicit függőség
A tulajdonság explicit dependsOn
függőséget deklarál. A tulajdonság elfogad egy erőforrás-azonosítók tömböt, így több függőséget is megadhat. Beágyazott erőforrás-függőséget az ::
operátorral adhat meg.
Az alábbi példa egy nevű otherZone
DNS-zónát mutat be, amely egy nevű dnsZone
DNS-zónától függ:
resource dnsZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoeZone1'
location: 'global'
}
resource otherZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoZone2'
location: 'global'
dependsOn: [
dnsZone
]
}
Bár érdemes lehet az erőforrások közötti kapcsolatok leképezésére használni dependsOn
, fontos megérteni, hogy miért csinálja. Az erőforrások összekapcsolási dependsOn
módjának dokumentálásához például nem a megfelelő módszer. Az üzembe helyezés után az erőforrás nem őrzi meg az üzembehelyezési függőségeket a tulajdonságaiban, így nincsenek olyan parancsok vagy műveletek, amelyek lehetővé teszik a függőségek megtekintését. A szükségtelen függőségek beállítása lelassítja az üzembe helyezés idejét, mert Resource Manager nem tudja párhuzamosan üzembe helyezni ezeket az erőforrásokat.
Annak ellenére, hogy néha explicit függőségekre van szükség, ritkán van rájuk szükség. A legtöbb esetben szimbolikus névvel utalhat az erőforrások közötti függőségre. Ha úgy találja, hogy explicit függőségeket állít be, érdemes megfontolnia, hogy van-e módja annak eltávolítására.
Függőségek vizualizációja
A Visual Studio Code egy eszközt biztosít a függőségek vizualizációjára. Nyisson meg egy Bicep-fájlt a Visual Studio Code-ban, és válassza a vizualizáció gombot a bal felső sarokban. Az alábbi képernyőkép egy virtuális gép függőségeit mutatja be.
Következő lépések
Az erőforrás üzembe helyezésének szintaxisát lásd: Erőforrás-deklaráció a Bicepben.