Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Azure Blueprints (предварительная версия) будет выведена из эксплуатации 31 января 2027 года, при этом поэтапный вывод из эксплуатации начнется 31 июля 2026 года. Перенесите существующие определения и назначения схем в стеки развертывания (рекомендуется) и спецификации шаблонов. Артефакты схемы преобразуются в JSON-шаблоны ARM или Bicep-файлы, которые используются для определения стеков развертывания. Сведения о полном поэтапном графике, последствиях и часто задаваемых вопросах см. в разделе О прекращении поддержки Azure Blueprints или https://aka.ms/AzureBlueprintsRetirement. Сведения о том, как создать артефакт в качестве ресурса ARM, см. в статье:
Назначением схемы можно управлять с помощью модуля Az.Blueprint Azure PowerShell. Модуль поддерживает получение, создание, обновление и удаление назначений. Модуль также может получить сведения о существующих определениях схемы. В этой статье описывается, как установить модуль и начать использовать его.
Добавление модуля Az.Blueprint
Чтобы Azure PowerShell мог управлять назначениями схем, необходимо добавить модуль. Этот модуль можно использовать с локально установленным PowerShell, с Azure Cloud Shell или с образом Docker Azure PowerShell.
Основные требования
Для модуля Azure Blueprints требуется следующее программное обеспечение:
- Azure PowerShell 1.5.0 или более поздней версии. Если она еще не установлена, выполните эти инструкции.
- PowerShellGet 2.0.1 или более поздней версии. Если он не установлен или не обновлен, следуйте этим инструкциям.
Установка модуля
Модуль Azure Blueprints для PowerShell — Az.Blueprint.
В командной строке PowerShell для администрирования выполните следующую команду:
# Install the Azure Blueprints module from PowerShell Gallery Install-Module -Name Az.BlueprintNote
Если Az.Accounts уже установлен, для принудительной установки может потребоваться использовать
-AllowClobber.Убедитесь, что модуль импортирован и является правильной версией (0.2.6):
# Get a list of commands for the imported Az.Blueprint module Get-Command -Module 'Az.Blueprint' -CommandType 'Cmdlet'
Получение определений схемы
Первым шагом при работе с назначением часто является получение ссылки на определение шаблона.
Командлет Get-AzBlueprint получает одно или несколько определений схемы. Командлет может получать определения схем из группы управления с помощью -ManagementGroupId {mgId} или из подписки с помощью -SubscriptionId {subId}. Параметр Name получает определение схемы, но его необходимо использовать с ManagementGroupId или SubscriptionId.
Версия может использоваться с именем, чтобы точнее указать, какое определение шаблона будет возвращено. Вместо Version переключатель -LatestPublished выбирает последнюю опубликованную версию.
В следующем примере используется Get-AzBlueprint для получения всех версий определения схемы с именем "101-blueprints-definition-subscription" из определенной подписки, представленной как {subId}:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get all versions of the blueprint definition in the specified subscription
$blueprints = Get-AzBlueprint -SubscriptionId '{subId}' -Name '101-blueprints-definition-subscription'
# Display the blueprint definition object
$blueprints
Пример выходных данных для определения схемы с несколькими версиями выглядит следующим образом:
Name : 101-blueprints-definition-subscription
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprints/101
-blueprints-definition-subscription
DefinitionLocationId : {subId}
Versions : {1.0, 1.1}
TimeCreated : 2019-02-25
TargetScope : Subscription
Parameters : {storageAccount_storageAccountType, storageAccount_location,
allowedlocations_listOfAllowedLocations, [Usergrouporapplicationname]:Reader_RoleAssignmentName}
ResourceGroups : ResourceGroup
Параметры плана в определении плана можно развернуть, чтобы показать дополнительную информацию.
$blueprints.Parameters
Key Value
--- -----
storageAccount_storageAccountType Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
storageAccount_location Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
allowedlocations_listOfAllowedLocations Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
[Usergrouporapplicationname]:Reader_RoleAssignmentName Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
Получить назначения шаблона
Если назначение схемы уже существует, вы можете получить ссылку на нее с помощью командлета Get-AzBlueprintAssignment . Командлет принимает SubscriptionId и Name в качестве необязательных параметров. Если Идентификатор подписки не указан, используется текущий контекст подписки.
В следующем примере используется Get-AzBlueprintAssignment для получения одного назначения схемы с именем 'Assignment-lock-resource-groups' из конкретной подписки, обозначенной как {subId}:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get the blueprint assignment in the specified subscription
$blueprintAssignment = Get-AzBlueprintAssignment -SubscriptionId '{subId}' -Name 'Assignment-lock-resource-groups'
# Display the blueprint assignment object
$blueprintAssignment
Пример выходных данных для назначения схемы выглядит следующим образом:
Name : Assignment-lock-resource-groups
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssignme
nts/Assignment-lock-resource-groups
Scope : /subscriptions/{subId}
LastModified : 2019-02-19
LockMode : AllResourcesReadOnly
ProvisioningState : Succeeded
Parameters :
ResourceGroups : ResourceGroup
Создать назначения шаблона
Если назначение схемы еще не существует, его можно создать с помощью командлета New-AzBlueprintAssignment . Этот командлет использует следующие параметры:
Имя [обязательно]
- Указывает название назначения схемы
- Должен быть уникальным и еще не существовать в SubscriptionId
Схема [обязательный]
- Указывает определение схемы для назначения
- Использование
Get-AzBlueprintдля получения эталонного объекта
Расположение [обязательно]
- Указывает регион, в котором будут созданы управляемое удостоверение, назначаемое системой, и объект развертывания подписки.
Подписка (необязательно)
- Указывает подписку, в которую развертывается это назначение.
- Если это не указано, по умолчанию используется контекст текущей подписки.
Блокировка (необязательно)
- Определяет блокировку ресурсов плана, используемую для развернутых ресурсов
- Поддерживаемые параметры: None, AllResourcesReadOnly, AllResourcesDoNotDelete
- Если значение не указано, по умолчанию используется значение None
SystemAssignedIdentity (необязательно)
- Выберите, чтобы создать управляемое удостоверение, назначаемое системой для назначения, и развернуть ресурсы
- Используется по умолчанию для набора параметров «identity»
- Невозможно использовать с UserAssignedIdentity
UserAssignedIdentity (необязательно)
- Указывает управляемую идентификацию, назначаемую пользователем, используемую для назначения и развертывания ресурсов
- Часть набора параметров "identity"
- Невозможно использовать с SystemAssignedIdentity
Параметр (необязательно)
Хэш-таблица пар "ключ-значение" для задания динамических параметров в назначении схемы
По умолчанию для динамического параметра используется значение defaultValue в определении.
Если параметр не указан и не имеет значения по умолчанию, параметр не является необязательным
Note
Параметр не поддерживает secureStrings.
ResourceGroupParameter (необязательно)
- Хэш-таблица артефактов группы ресурсов
- Каждый заполнитель артефакта группы ресурсов содержит пары "ключ-значение" для динамической установки Name и Location для этого артефакта группы ресурсов
- Если параметр группы ресурсов не указан и не имеет значения по умолчанию, параметр группы ресурсов не является необязательным.
AssignmentFile (необязательно)
- Путь к представлению JSON-файла назначения схемы
- Этот параметр является частью набора параметров PowerShell, который включает только имя, схему и идентификатор подписки, а также общие параметры.
Пример 1. Предоставление параметров
В следующем примере создается новое назначение версии "1.1" определения схемы "my-blueprint", полученного с помощью Get-AzBlueprint, задается расположение управляемого удостоверения и объекта назначения как "westus2", ресурсы блокируются с помощью AllResourcesReadOnly, а также задаются хеш-таблицы для Parameter и ResourceGroupParameter для конкретной подписки, представленной как {subId}:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
# Create the hash table for Parameters
$bpParameters = @{storageAccount_storageAccountType='Standard_GRS'}
# Create the hash table for ResourceGroupParameters
# ResourceGroup is the resource group artifact placeholder name
$bpRGParameters = @{ResourceGroup=@{name='storage_rg';location='westus2'}}
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Location 'westus2' -Lock AllResourcesReadOnly `
-Parameter $bpParameters -ResourceGroupParameter $bpRGParameters
Пример выходных данных для создания назначения схемы выглядит следующим образом:
Name : my-blueprint-assignment
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssi
gnments/my-blueprint-assignment
Scope : /subscriptions/{subId}
LastModified : 2019-03-13
LockMode : AllResourcesReadOnly
ProvisioningState : Creating
Parameters : {storageAccount_storageAccountType}
ResourceGroups : ResourceGroup
Пример 2. Использование файла определения назначения JSON
В следующем примере создается почти то же назначение, что и пример 1. Вместо передачи параметров командлету в примере показано использование файла определения назначения JSON и параметра AssignmentFile . Кроме того, свойство excludedPrincipals настраивается как часть блокировок. Для excludedPrincipals нет параметра PowerShell, и это свойство можно задать только в JSON-файле определения назначения.
{
"identity": {
"type": "SystemAssigned"
},
"location": "westus2",
"properties": {
"description": "Assignment of the 101-blueprint-definition-subscription",
"blueprintId": "/subscriptions/{subId}/providers/Microsoft.Blueprint/blueprints/101-blueprints-definition-subscription",
"locks": {
"mode": "AllResourcesReadOnly",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
]
},
"parameters": {
"storageAccount_storageAccountType": {
"value": "Standard_GRS"
}
},
"resourceGroups": {
"ResourceGroup": {
"name": "storage_rg",
"location": "westus2"
}
}
}
}
# Login first with Connect-AzAccount if not using Cloud Shell
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -SubscriptionId '{subId}' `
-AssignmentFile '.\assignment.json'
Пример файла определения назначения JSON для управляемого удостоверения, назначаемого пользователем, см. в теле запроса в разделе Пример: назначение с управляемым удостоверением, назначаемым пользователем для REST API.
Обновить назначения шаблона
Иногда требуется обновить уже созданное назначение проекта. Командлет Set-AzBlueprintAssignment выполняет это действие. Командлет принимает большинство тех же параметров, что и командлет New-AzBlueprintAssignment, что позволяет обновить всё, что было задано для назначения. Исключения : Name, Blueprint и SubscriptionId. Обновляются только указанные значения.
Чтобы понять, что происходит при обновлении назначения проекта, см. правила обновления назначений.
Имя [обязательно]
- Указывает имя назначения схемы для обновления
- Используется для поиска назначения для обновления, а не для изменения назначения.
Схема [обязательный]
- Указывает определение плана для назначения плана
- Использование
Get-AzBlueprintдля получения эталонного объекта - Используется для поиска назначения для обновления, а не для изменения назначения.
Расположение (необязательно)
- Указывает регион, в котором будут созданы управляемое удостоверение, назначаемое системой, и объект развертывания подписки.
Подписка (необязательно)
- Указывает подписку, в которую развертывается это назначение.
- Если это не указано, по умолчанию используется контекст текущей подписки.
- Используется для поиска назначения для обновления, а не для изменения назначения.
Блокировка (необязательно)
- Определяет блокировку ресурсов плана, используемую для развернутых ресурсов
- Поддерживаемые параметры: None, AllResourcesReadOnly, AllResourcesDoNotDelete
SystemAssignedIdentity (необязательно)
- Выберите, чтобы создать управляемое удостоверение, назначаемое системой для назначения, и развернуть ресурсы
- Используется по умолчанию для набора параметров «identity»
- Невозможно использовать с UserAssignedIdentity
UserAssignedIdentity (необязательно)
- Указывает управляемую идентификацию, назначаемую пользователем, используемую для назначения и развертывания ресурсов
- Часть набора параметров "identity"
- Невозможно использовать с SystemAssignedIdentity
Параметр (необязательно)
Хэш-таблица пар "ключ-значение" для задания динамических параметров в назначении схемы
По умолчанию для динамического параметра используется значение defaultValue в определении.
Если параметр не указан и не имеет значения по умолчанию, параметр не является необязательным
Note
Параметр не поддерживает secureStrings.
ResourceGroupParameter (необязательно)
- Хэш-таблица артефактов группы ресурсов
- Каждый заполнитель артефакта группы ресурсов содержит пары "ключ-значение" для динамической установки Name и Location для этого артефакта группы ресурсов
- Если параметр группы ресурсов не указан и не имеет значения по умолчанию, параметр группы ресурсов не является необязательным.
В следующем примере обновляется назначение для версии '1.1' определения схемы 'my-blueprint', полученного с помощью Get-AzBlueprint, путем изменения режима блокировки:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
# Update the existing blueprint assignment
$bpAssignment = Set-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Lock AllResourcesDoNotDelete
Пример выходных данных для создания назначения схемы выглядит следующим образом:
Name : my-blueprint-assignment
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssi
gnments/my-blueprint-assignment
Scope : /subscriptions/{subId}
LastModified : 2019-03-13
LockMode : AllResourcesDoNotDelete
ProvisioningState : Updating
Parameters : {storageAccount_storageAccountType}
ResourceGroups : ResourceGroup
Удаление назначений схемы
Когда нужно удалить назначение схемы, Remove-AzBlueprintAssignment командлет обрабатывает это действие. Командлет принимает либо Name, либо InputObject, чтобы указать, какое назначение схемы следует удалить.
Идентификатор подпискиявляется обязательным и должен быть предоставлен во всех случаях.
В следующем примере с помощью Get-AzBlueprintAssignment получается существующее назначение схемы, а затем оно удаляется из конкретной подписки, обозначенной как {subId}:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get the blueprint assignment in the specified subscription
$blueprintAssignment = Get-AzBlueprintAssignment -Name 'Assignment-lock-resource-groups'
# Remove the existing blueprint assignment
Remove-AzBlueprintAssignment -InputObject $blueprintAssignment -SubscriptionId '{subId}'
Пример кода
Объединяя все шаги, в следующем примере сначала получается определение схемы, а затем в конкретной подписке, обозначенной как {subId}, создаётся, обновляется и удаляется назначение схемы:
# Login first with Connect-AzAccount if not using Cloud Shell
#region GetBlueprint
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
#endregion
#region CreateAssignment
# Create the hash table for Parameters
$bpParameters = @{storageAccount_storageAccountType='Standard_GRS'}
# Create the hash table for ResourceGroupParameters
# ResourceGroup is the resource group artifact placeholder name
$bpRGParameters = @{ResourceGroup=@{name='storage_rg';location='westus2'}}
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Location 'westus2' -Lock AllResourcesReadOnly `
-Parameter $bpParameters -ResourceGroupParameter $bpRGParameters
#endregion CreateAssignment
# Wait for the blueprint assignment to finish deployment prior to the next steps
#region UpdateAssignment
# Update the existing blueprint assignment
$bpAssignment = Set-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Lock AllResourcesDoNotDelete
#endregion UpdateAssignment
# Wait for the blueprint assignment to finish deployment prior to the next steps
#region RemoveAssignment
# Remove the existing blueprint assignment
Remove-AzBlueprintAssignment -InputObject $bpAssignment -SubscriptionId '{subId}'
#endregion
Дальнейшие действия
- Узнайте о жизненном цикле схемы.
- Узнайте, как использовать статические и динамические параметры.
- Узнайте, как настроить порядок последовательности схемы.
- Узнайте, как использовать блокировку ресурсов чертежа.
- Устраняйте проблемы, возникающие во время назначения схемы, с помощью общих инструкций по устранению неполадок.