Создание стека развертывания

Завершено

Стек развертывания 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 с параметрами группы ресурсов и местом поиска стеков развертывания.

Щелкнув стеки развертывания, он перечисляет все стеки, на которые распространяется группа ресурсов. Щелкнув стек развертывания, перейдите на страницу свойств стека развертывания.

Снимок экрана: портал 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 для операций отображения и списка.