Создание стека развертывания
Стек развертывания Azure — это коллекция ресурсов Azure, которые можно управлять как один модуль, даже если они охватывают несколько групп ресурсов или подписок.
Вы планируете развертывание тестовой версии нового приложения депозитов. Дополнительные сведения о том, как создать стек развертывания и проверить управляемые ресурсы.
В этом уроке вы узнаете, как создать стек развертывания, проверить его развертывание и перечислить все стеки развертывания в вашей среде.
Примечание.
Команды в этом уроке демонстрируют основные понятия. На этом этапе не выполняйте команды. Вскоре вы поупражняетесь с полученными знаниями.
Стеки развертывания изменены
Стеки развертывания изменяют, как вы думаете о организации ресурсов в группах ресурсов и подписках. Стек развертывания позволяет группировать все ресурсы, составляющие приложение, независимо от того, где они есть в иерархии организации ресурсов Azure. Их можно управлять одним блоком. Стеки развертывания позволяют выполнять операции жизненного цикла в коллекции ресурсов, составляющих стек.
Рассмотрим стеки развертывания как ряд указателей, которые группирует ресурсы приложения в один блок. Стеки развертывания можно создавать в разных областях, таких как группы ресурсов, подписки и группы управления.
Определение ресурсов
Стеки развертывания поддерживают использование файлов Bicep, шаблонов JSON ARM или спецификаций шаблонов для определения ресурсов в стеке. При создании стека развертывания с помощью Azure CLI или Azure PowerShell можно указать конкретный файл шаблона (Bicep-файл или шаблон JSON ARM) или спецификацию шаблона. Изменить способ определения ресурсов не требуется.
Мы используем следующий файл Bicep для нашего первого стека развертывания. Файл определяет план службы приложений и веб-приложение. Эти ресурсы становятся управляемыми ресурсами при создании стека развертывания.
// Parameters
@description('The location for all resources.')
param location string = 'eastus'
@description('The name of the web application.')
param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'
// Variables
@description('The name of the app service plan.')
var appServicePlanName = 'plan-deposits'
// Resource - App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
name: appServicePlanName
location: location
sku: {
name: 'F1'
capacity: 1
}
}
// Resource - Web App
resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
name: webApplicationName
location: location
properties: {
serverFarmId: appServicePlan.id
}
}
Примечание.
Вы можете заметить ${uniqueString(resourceGroup().id)}
синтаксис параметра webApplicationName
. Функция uniqueString создает строку на основе идентификатора группы ресурсов и добавляет ее в качестве суффикса webapp-deposits
. Для многих служб Azure требуются уникальные имена. Эта функция помогает создать уникальное имя.
Создание стека развертывания
Создание и развертывание стека развертывания и его ресурсов почти идентично стандартному развертыванию Azure. Независимо от того, используете ли вы Azure CLI, Azure PowerShell или инфраструктуру в качестве конвейера кода, процесс чувствует себя так же. Например:
Команда Azure CLI для развертывания Bicep-файла в группе ресурсов:
az deployment group create \
--resource-group rg-depositsApplication \
--template-file ./main.bicep
Команда Azure CLI для создания стека развертывания в области группы ресурсов:
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Обратите внимание, что единственными изменениями в команде являются слова deployment
и stack
различия в используемых параметрах. То же самое верно для развертываний в подписках и группах управления.
Примечание.
В последующих модулях мы рассмотрим, как управлять ресурсами стека развертывания с помощью --action-on-unmanage
и как предотвратить нежелательные изменения с помощью --deny-settings-mode
.
Команда Azure PowerShell для развертывания Bicep-файла в группе ресурсов:
New-AzResourceGroupDeployment `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep
Команда Azure PowerShell для создания стека развертывания в области группы ресурсов:
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Обратите внимание, что единственное изменение команды — слово stack
и различия в используемых параметрах. То же самое верно для развертываний в подписках и группах управления.
Примечание.
В последующих модулях мы рассмотрим, как управлять ресурсами стека развертывания с помощью -ActionOnUnmanage
и как предотвратить нежелательные изменения с помощью -DenySettingsMode
.
Теперь давайте рассмотрим создание стека развертывания в области группы ресурсов.
Чтобы создать стек развертывания с помощью Azure CLI, используйте az stack group create
команду. Следующие команды сначала создают группу ресурсов, которая вызывается rg-depositsApplication
, а затем создает стек развертывания в области группы ресурсов.
az group create \
--name rg-depositsApplication \
--location eastus
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Чтобы создать стек развертывания с помощью Azure PowerShell, используйте New-AzResourceGroupDeploymentStack
команду. Следующие команды сначала создают группу ресурсов, которая вызывается rg-depositsApplication
, а затем создает стек развертывания в области группы ресурсов.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Отображение стеков развертывания
Группы ресурсов могут иметь несколько стеков развертывания, охватывая их. Вы можете отобразить сведения о определенном стеке развертывания, ограниченном для группы ресурсов.
Чтобы отобразить определенный ресурс стека развертывания в группе ресурсов с помощью Azure CLI, используйте az stack group show
команду, указав имя стека развертывания и целевую группу ресурсов.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
Результаты включают свойства стека развертывания и состояние управляемых ресурсов. Выходные данные должны отображаться знакомы со следующим разделом:
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"bypassStackOutOfSyncError": null,
"correlationId": ".",
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT2M53.2734284S",
"error": null,
"failedResources": [],
"id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
"location": null,
"name": "stack-deposits",
"outputs": null,
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-01-01T00:00:01.000000+00:00",
"createdBy": "depositsapplication@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
"lastModifiedBy": "depositsapplication@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Обратите внимание на раздел ресурсов выходных данных. Для каждого ресурса отображается состояние managed
группы ресурсов, идентификатора ресурса и его параметров запрета.
Чтобы отобразить определенный ресурс стека развертывания в группе ресурсов с помощью Azure PowerShell, используйте Get-AzResourceGroupDeploymentStack
команду, указав имя стека развертывания и целевую группу ресурсов.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
Результаты включают свойства стека развертывания и состояние управляемых ресурсов. Выходные данные должны отображаться знакомы со следующим разделом:
Id : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name : stack-deposits
ProvisioningState : succeeded
resourcesCleanupAction : detach
resourceGroupsCleanupAction : detach
managementGroupsCleanupAction : detach
CorrelationId : .
DenySettingsMode : none
CreationTime(UTC) : 1/01/2024 0:00:01 AM
DeploymentId : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
/subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
Обратите внимание на раздел ресурсов выходных данных. Он определяет ресурсы, управляемые стеком развертывания. Вы увидите полный идентификатор ресурса каждого ресурса.
Вы также можете просмотреть стеки развертывания в портал Azure. Они доступны в соответствующих областях. Для группы ресурсов перейдите в группу ресурсов, в которой находится стек развертывания. В разделе параметров отображается параметр для стеков развертывания.
Щелкнув стеки развертывания, он перечисляет все стеки, на которые распространяется группа ресурсов. Щелкнув стек развертывания, перейдите на страницу свойств стека развертывания.
Перечисление стеков развертывания
Вы также можете перечислить все стеки развертывания, относящиеся к определенной группе ресурсов.
Чтобы вывести список всех ресурсов стека развертывания в группе ресурсов с помощью Azure CLI, используйте az stack group list
команду, указав целевую группу ресурсов.
az stack group list \
--resource-group rg-depositsApplication
Чтобы вывести список всех ресурсов стека развертывания в группе ресурсов с помощью Azure PowerShell, используйте Get-AzResourceGroupDeploymentStack
команду, указав целевую группу ресурсов.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication
Примечание.
Azure PowerShell использует одну и ту же команду Get-AzResourceGroupDeploymentStack
для операций отображения и списка.