Развертывание шаблонов на различных уровнях

Завершено

Теперь вы понимаете различные область, с помощью которых можно развернуть ресурсы. А в этом уроке вы узнаете, как приступить к созданию файлов Bicep, используя которые вы сможете выполнять развертывания на этих уровнях.

Указание целевого уровня для файла Bicep

Bicep должен знать область, в которой развертывается файл. Эти сведения важны, поскольку Bicep необходимо убедиться, что развертываемые ресурсы допустимы для используемого уровня. Например, расширение Bicep для Visual Studio Code выдает предупреждение при попытке оределить ресурс на неподдерживаемом уровне.

Используйте ключевое слово targetScope, чтобы сообщить Bicep о том, что ресурсы в файле относятся к определенному уровню. Ниже приведен пример файла Bicep, который развертывает ресурсы в группе управления область:

targetScope = 'managementGroup'

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

Обратите внимание, что вы сообщаете Bicep развернуть ресурсы в область группы управления, но вы не указываете, какая группа управления. Вы указываете Bicep, в какой именно группе управления требуется развернуть ресурсы, развертывая шаблон. Командлеты Azure CLI и Azure PowerShell предоставляют аргументы для указания этих сведений.

Вы можете задать targetScope для файла resourceGroupзначение , subscriptionmanagementGroupили tenant. Если целевой область не указан, Bicep предполагает resourceGroup область.

Создание групп ресурсов

Теперь, когда вы получили сведения о том, как создавать развертывания на разных уровнях, попробуйте применить полученные знания, чтобы создать группу ресурсов, которая является ресурсом с областью действия подписки.

targetScope = 'subscription'

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

В этом примере обратите внимание, что файл Bicep имеет значение targetScope subscription, что означает, что Bicep считает все ресурсы в файле область по умолчанию.

Примечание.

Сведения о том, как использовать Bicep для создания подписок Azure и групп управления, будут представлены позже в этом модуле.

Отправка развертывания

При запуске развертывания необходимо сообщить Azure, на каком область его нужно развернуть. Это значит, что для каждой области развертывания используется другой командлет Azure CLI, как показано ниже:

Чтобы выполнить развертывание на этом уровне, выполните следующие действия. Выполните следующую команду Azure CLI.
Группа ресурсов az deployment group create
Подписка az deployment sub create
Группа управления az deployment mg create
Клиент az deployment tenant create

При запуске развертывания необходимо сообщить Azure, на каком область его нужно развернуть. Это означает, что для каждой области развертывания используются разные командлеты PowerShell, как показано ниже:

Чтобы выполнить развертывание на этом уровне, выполните следующие действия. Используйте этот командлет PowerShell:
Группа ресурсов New-AzResourceGroupDeployment
Подписка New-AzSubscriptionDeployment
Группа управления New-AzManagementGroupDeployment
Клиент New-AzTenantDeployment

Azure хранит метаданные о каждом развертывании. В отличие от развертываний в группе ресурсов область, при развертывании в других область azure есть некоторые сведения, которые позволяют Azure правильно хранить метаданные:

  • Расположение. Метаданные развертывания должны храниться в указанном расположении. Вам не нужно указывать расположение для групп ресурсов область развертывания, так как метаданные развертывания используют то же расположение, что и группа ресурсов. Однако при создании развертывания в подписке, группе управления или клиенте область необходимо указать регион Azure, в который хранятся метаданные развертывания. Ресурсы для развертывания в этих область не всегда создаются в том же расположении, которое вы указали для метаданных.

  • Имя. Все развертывания в Azure имеют имя. Вы можете отправить Azure запрос о развертывании, указав его имя. При использовании Azure CLI или Azure PowerShell для отправки развертывания вам не нужно указывать имя. Но если нет, имя файла шаблона используется в качестве имени развертывания.

Комбинация области развертывания, расположения и имени должна быть уникальной. Например, предположим, что вы создадите развертывание подписки с именем my-deployment и используете расположение "Восточная часть США" для хранения метаданных. Вы не можете создать другое развертывание в той же подписке, my-deploymentдаже если она находится в другом расположении, например в Западной Европе. Если вы создаете другое развертывание с именем в my-deployment восточной части США, оно перезаписывает существующее развертывание.