Wdrażanie szablonów w różnych zakresach

Ukończone

Teraz rozumiesz różne zakresy, w których można wdrażać zasoby. W tej lekcji dowiesz się, jak rozpocząć pisanie plików Bicep w celu wdrożenia w tych zakresach.

Określ zakres docelowy dla pliku Bicep

Bicep musi znać zakres, w którym jest wdrażany plik. Te informacje są ważne, ponieważ Bicep musi upewnić się, że wdrażane zasoby są prawidłowe dla używanego zakresu. Na przykład rozszerzenie Bicep dla programu Visual Studio Code wyświetli ostrzeżenie, jeśli spróbujesz zdefiniować zasób w nieobsługiwanym zakresie.

Użyj słowa kluczowego targetScope, aby poinformować Bicep, że zasoby w pliku dotyczą określonego zakresu. Oto przykład pliku Bicep, który wdraża zasoby w obszarze grupy zarządzania.

targetScope = 'managementGroup'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
  // ...
}

Zwróć uwagę, że mówisz Bicepowi, aby wdrożyć zasoby w zakresie grupy zarządzania, ale nie określasz, której grupy zarządzania dotyczy . Podczas wdrażania szablonu należy poinformować Bicep dokładnie, do której grupy zarządzania chcesz wdrożyć zasoby. Interfejs wiersza polecenia platformy Azure i polecenia cmdlet programu Azure PowerShell zawierają argumenty określające te informacje.

Możesz ustawić targetScope dla pliku na resourceGroup, subscription, managementGrouplub tenant. Jeśli nie określisz zakresu docelowego, Bicep przyjmie zakres resourceGroup.

Tworzenie grup zasobów

Teraz, gdy już wiesz, jak tworzyć wdrożenia w różnych zakresach, spróbuj zastosować tę wiedzę do utworzenia grupy zasobów, która jest zasobem o zakresie subskrypcji:

targetScope = 'subscription'

resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
  name: 'example-resource-group'
  location: 'westus'
}

W tym przykładzie zwróć uwagę, że plik Bicep ma targetScope, subscription, co oznacza, że Bicep traktuje wszystkie zasoby w pliku jako domyślnie objęte zakresem subskrypcji.

Notatka

W dalszej części tego modułu zobaczysz, jak używać platformy Bicep do tworzenia subskrypcji platformy Azure i grup zarządzania.

Prześlij wdrożenie

Podczas inicjowania wdrożenia należy poinformować platformę Azure o zakresie, w którym chcesz go wdrożyć. Oznacza to, że używasz innego polecenia interfejsu wiersza polecenia platformy Azure dla każdego zakresu wdrożenia, jak pokazano poniżej:

Aby wdrożyć na tym poziomie: Uruchom następujące polecenie Azure CLI:
Grupa zasobów az deployment group create
Subskrypcja az deployment sub create
Grupa zarządzania az deployment mg create
Najemca az deployment tenant create

Podczas inicjowania wdrożenia należy poinformować platformę Azure o zakresie, w którym chcesz go wdrożyć. Oznacza to, że używasz innego polecenia cmdlet programu PowerShell dla każdego zakresu wdrożenia, jak pokazano poniżej:

Aby wdrożyć na tym poziomie: Użyj tego polecenia cmdlet programu PowerShell:
Grupa zasobów New-AzResourceGroupDeployment
Subskrypcja New-AzSubscriptionDeployment
Grupa zarządzania New-AzManagementGroupDeployment
Najemca New-AzTenantDeployment

Platforma Azure przechowuje metadane dotyczące każdego wdrożenia. W przeciwieństwie do wdrożeń w zakresie grupy zasobów istnieją pewne informacje, które należy podać podczas wdrażania w innych zakresach, aby platforma Azure mogła poprawnie przechowywać metadane:

  • Lokalizacja: metadane wdrożenia muszą być przechowywane w określonej lokalizacji. Nie musisz określać lokalizacji dla wdrożeń zakresu grupy zasobów, ponieważ metadane wdrożenia używają tej samej lokalizacji co grupa zasobów. Jednak podczas tworzenia wdrożenia w ramach subskrypcji, grupy zarządzania lub zakresu dzierżawy należy określić region świadczenia usługi Azure, w którym są przechowywane metadane wdrożenia. Zasoby dla twojego wdrożenia w tych zakresach nie zawsze są tworzone w tych samych miejscach, które zostały określone dla metadanych.

  • Nazwa: wszystkie wdrożenia na platformie Azure mają nazwę. Możesz poprosić platformę Azure o informacje o wdrożeniu przy użyciu jego nazwy. Jeśli używasz interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell do przesyłania wdrożenia, nie musisz określać nazwy. Jeśli jednak tego nie zrobisz, nazwa pliku szablonu jest używana jako nazwa wdrożenia.

Kombinacja zakresu, lokalizacji i nazwy wdrożenia musi być unikatowa. Załóżmy na przykład, że utworzysz wdrożenie subskrypcji o nazwie my-deployment i użyjesz lokalizacji Wschodnie stany USA do przechowywania metadanych. Nie można utworzyć innego wdrożenia w tej samej subskrypcji o nazwie my-deployment, nawet jeśli znajduje się w innej lokalizacji, takiej jak Europa Zachodnia. Jeśli utworzysz inne wdrożenie o nazwie my-deployment we wschodnich USA, zastąpi ono istniejące wdrożenie.