Развертывание шаблонов в различных областях
Теперь вы понимаете различные области, в которых можно развернуть ресурсы. В этом уроке вы узнаете, как начать писать файлы 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
, subscription
, managementGroup
или 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 CLI или Azure PowerShell для отправки развертывания вам не нужно указывать имя. Но если вы этого не делаете, имя файла шаблона будет использоваться в качестве имени развертывания.
Сочетание области развертывания, расположения и имени должно быть уникальным. Например, предположим, что вы создаете подписное развертывание под именем my-deployment
и используете расположение "Восток США" для хранения метаданных. Вы не можете создать еще одно развертывание в той же подписке с таким же именем my-deployment
, даже если оно находится в другом месте, например, в Западной Европе. Если вы создаете другое развертывание с именем my-deployment
в восточной части США, оно перезаписывает существующее развертывание.