Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas wdrażania zasobów może być konieczne upewnienie się, że niektóre zasoby są wdrażane przed innymi zasobami. Na przykład przed wdrożeniem bazy danych potrzebny jest logiczny serwer SQL. Tę relację należy ustanowić, oznaczając jeden zasób jako zależny od drugiego zasobu. Kolejność wdrażania zasobów jest określana na dwa sposoby: niejawna zależność i jawna zależność
Usługa Azure Resource Manager ocenia zależności między zasobami i wdraża je w odpowiedniej kolejności. Gdy zasoby nie zależą od siebie nawzajem, usługa Resource Manager wdraża je równolegle. Wystarczy zdefiniować zależności dla zasobów wdrożonych w tym samym pliku Bicep.
Zależność niejawna
Zależność niejawna jest tworzona, gdy jedna deklaracja zasobu odwołuje się do innego zasobu w tym samym wdrożeniu. W poniższym przykładzie otherResource pobiera właściwość z exampleDnsZone. Zasób o nazwie otherResource jest niejawnie zależny od 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
}
}
Zagnieżdżony zasób ma również ukrytą zależność od zasobu, który go zawiera.
resource myParent 'My.Rp/parentType@2024-05-01' = {
name: 'myParent'
location: 'West US'
// implicit dependency on 'myParent'
resource myChild 'childType' = {
name: 'myChild'
}
}
Zasób zawierający właściwość nadrzędną ma niejawną zależność od zasobu nadrzędnego. Zależy to od zasobu nadrzędnego, a nie od żadnego z innych zasobów podrzędnych.
W poniższym przykładzie przedstawiono konto przechowywania i usługę plików. Usługa plików ma niejawną zależność od konta magazynu.
resource storage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource service 'Microsoft.Storage/storageAccounts/fileServices@2025-06-01' = {
name: 'default'
parent: storage
}
resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2025-06-01' = {
name: 'exampleshare'
parent: service
}
Jeśli istnieje zależność niejawna, nie dodawaj jawnej zależności.
Aby uzyskać więcej informacji na temat zasobów zagnieżdżonych, zapoznaj się z Ustawianie nazwy i typu dla zasobów podrzędnych w Bicep.
Zależność jawna
Jawna zależność jest deklarowana z właściwością dependsOn . Właściwość akceptuje tablicę identyfikatorów zasobów, dzięki czemu można określić więcej niż jedną zależność. Zależność zasobu zagnieżdżonego można określić przy użyciu :: operatora .
W poniższym przykładzie przedstawiono strefę DNS o nazwie otherZone , która zależy od strefy DNS o nazwie dnsZone:
resource dnsZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoZone1'
location: 'global'
}
resource otherZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoZone2'
location: 'global'
dependsOn: [
dnsZone
]
}
Chociaż możesz użyć dependsOn metody do mapowania relacji między zasobami, ważne jest, aby zrozumieć, dlaczego to robisz. Aby na przykład udokumentować sposób połączenia zasobów, dependsOn nie jest właściwym podejściem. Po wdrożeniu zasób nie zachowuje zależności wdrożenia we właściwościach, dlatego nie ma żadnych poleceń ani operacji, które umożliwiają wyświetlanie zależności. Ustawienie niepotrzebnych zależności spowalnia czas wdrażania, ponieważ usługa Resource Manager nie może wdrażać tych zasobów równolegle.
Mimo że jawne zależności są czasami wymagane, potrzeba ich jest rzadka. W większości przypadków można użyć nazwy symbolicznej, aby sugerować zależność między zasobami. Jeśli znajdziesz się, ustawiając jawne zależności, należy rozważyć, czy istnieje sposób jego usunięcia.
Wizualizowanie zależności
Program Visual Studio Code udostępnia narzędzie do wizualizacji zależności. Otwórz plik Bicep w programie Visual Studio Code i wybierz przycisk wizualizatora w lewym górnym rogu. Poniższy zrzut ekranu przedstawia zależności maszyny wirtualnej.
Następne kroki
Aby uzyskać informacje o składni służącej do wdrażania zasobu, zobacz Deklarację zasobu w Bicep.