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ślanie zakresu docelowego 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 zakresie grupy zarządzania:

targetScope = 'managementGroup'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2020-09-01' = {
  // ...
}

Zwróć uwagę, że mówisz Bicepowi, aby wdrożyć zasoby w zakresie grupy zarządzania, ale nie określasz grupy zarządzania. 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.

Dla pliku można ustawić targetScope wartość , , subscriptionmanagementGrouplub tenant.resourceGroup Jeśli nie określisz zakresu docelowego, Bicep zakłada resourceGroup zakres.

Utwórz grupy 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@2021-01-01' = {
  name: 'example-resource-group'
  location: 'westus'
}

W tym przykładzie zwróć uwagę, że plik Bicep ma targetScope wartość subscription, co oznacza, że Bicep uwzględnia wszystkie zasoby w pliku, które mają być domyślnie objęte zakresem subskrypcji.

Uwaga

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

Przesyłanie wdrożenia

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ć w tym zakresie: Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure:
Grupa zasobów az deployment group create
Subskrypcja az deployment sub create
Grupa zarządzania az deployment mg create
Dzierżawa 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ć w tym zakresie: Użyj tego polecenia cmdlet programu PowerShell:
Grupa zasobów New-AzResourceGroupDeployment
Subskrypcja New-AzSubscriptionDeployment
Grupa zarządzania New-AzManagementGroupDeployment
Dzierżawa 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 wdrożenia w tych zakresach nie zawsze są tworzone w tej samej lokalizacji, w której określono metadane.

  • 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 w regionie Wschodnie stany USA, zastąpi istniejące wdrożenie.