Упражнение. Обновление и удаление стека развертывания

Завершено

Вы на спринте 2 для нового приложения депозитов. Вы хотите проверить обновление стека развертывания, определив базу данных SQL Azure в файле Bicep. Необходимо убедиться, что стек управляет вновь определенными ресурсами.

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

  • Обновите файл Bicep, чтобы включить базу данных SQL Azure.
  • Обновите стек развертывания, чтобы развернуть новую базу данных.
  • Проверьте управляемые ресурсы стека развертывания.
  • Удалите стек развертывания и управляемые ресурсы.
  • Проверьте удаление стека развертывания и управляемых ресурсов.

Обновите файл Bicep, чтобы включить базу данных SQL Azure

  1. Откройте файл main.bicep в Visual Studio Code.

  2. Добавьте выделенный код в раздел параметров файла:

    // Parameters
    @description('The location for all resources.')
    param location string = 'eastus'
    
    @description('The name of the SQL database.')
    param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}'
    
    @description('The password of the admin user.')
    param sqlServerAdminUserName string
    
    @description('The name of the admin user.')
    @secure()
    param sqlServerAdminPassword string
    
    @description('The name of the SQL server.')
    param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}'
    
    @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'
    
  3. Добавьте следующий код в конец этого файла.

    // Resource - SQL Server
    resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={
      name: sqlServerName
      location: location
      properties: {
        administratorLogin: sqlServerAdminUserName
        administratorLoginPassword: sqlServerAdminPassword
      }
    }
    
    // Resource - SQL Database
    resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = {
      parent: sqlServer
      name: sqlDatabaseName
      location: location
      sku: {
        name: 'Standard'
        tier: 'Standard'
      }
    }
    
  4. Сохраните изменения в файле.

Обновление стека развертывания

После обновления файла Bicep мы хотим обновить стек развертывания, чтобы новая база данных SQL Azure развертывалась в среде в качестве управляемого ресурса.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.

    az stack group create \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --template-file ./main.bicep \
        --action-on-unmanage deleteAll \
        --deny-settings-mode none
    
  2. Вы получите сообщение о том, что стек уже существует в текущей подписке. Если значение действия для неуправляемого параметра изменилось, предупреждение оповещает вас о новых значениях. Нажмите клавишу yВВОД, а затем нажмите клавишу ВВОД.

    Снимок экрана: предупреждение командной строки Azure CLI о том, что стек развертывания уже существует.

  3. Вам будет предложено ввести значение для sqlServerAdminUserName. Создайте имя администратора SQL Server, за которым следует "ВВОД".

    Снимок экрана: командная строка Azure CLI с запросом ввести имя пользователя администратора SQL Server.

  4. Вам будет предложено ввести значение для sqlServerAdminPassword. Создайте сложный пароль для администратора SQL Server, а затем —ВВОД.

    Снимок экрана: командная строка Azure CLI с запросом на ввод пароля администратора SQL Server.

Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

После обновления файла Bicep мы хотим обновить стек развертывания, чтобы новая база данных SQL Azure развертывалась в среде в качестве управляемого ресурса.

  1. Чтобы обновить стек развертывания, выполните следующую команду из терминала в Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Вам будет предложено ввести значение для sqlServerAdminUserName. Создайте имя администратора SQL Server, за которым следует "ВВОД".

    Снимок экрана: командная строка Azure PowerShell с запросом на ввод имени пользователя администратора SQL Server.

  3. Вам будет предложено ввести значение для sqlServerAdminPassword. Создайте сложный пароль для администратора SQL Server, а затем —ВВОД.

    Снимок экрана: командная строка Azure PowerShell с запросом на ввод пароля администратора SQL Server.

  4. Дождитесь завершения операции обновления, прежде чем перейти к следующей задаче.

Проверка обновления стека развертывания и управляемых ресурсов

После завершения обновления мы хотим убедиться, что стек развертывания управляет базой данных SQL Azure. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

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,
  "parameters": {
    "sqlServerAdminPassword": {
      "reference": null,
      "type": "securestring",
      "value": ""
    },
    "sqlServerAdminUserName": {
      "reference": null,
      "type": "string",
      "value": "sqladmin"
    }
  },
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "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"
}

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

После завершения обновления мы хотим убедиться, что стек развертывания управляет базой данных SQL Azure. Чтобы просмотреть конфигурацию стека развертывания, выполните следующую команду из терминала в Visual Studio Code.

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
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq
                                /subscriptions/././rg-depositsApplication/././servers/sql-eque2jlrboltq/databases/sqldb-eque2jlrboltq
Parameters                    : 
                                Name                      Type                       Value     
                                ========================  =========================  ==========
                                sqlServerAdminUserName    string                     "sqladmin"
                                sqlServerAdminPassword    securestring               ""

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

Удаление стека развертывания

  1. Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Вам будет предложено подтвердить, хотите ли удалить стек и указанные ресурсы.

    Снимок экрана: подтверждение командной строки для удаления стека развертывания с помощью Azure CLI.

  3. После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.

  4. Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Вам будет предложено подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.

    Снимок экрана: подтверждение командной строки для удаления группы ресурсов с помощью Azure CLI.

  1. Чтобы удалить стек развертывания и управляемые ресурсы, выполните следующую команду из терминала в Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Вам будет предложено подтвердить, хотите ли удалить стек и указанные ресурсы.

    Снимок экрана: подтверждение командной строки для удаления стека развертывания с помощью Azure PowerShell.

  3. После завершения операции удаления откройте портал Azure и убедитесь, что стек развертывания и его ресурсы удалены.

  4. Чтобы удалить группу ресурсов, используемую в этих упражнениях, выполните следующую команду из терминала в Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Вам будет предложено подтвердить, хотите ли удалить группу ресурсов. Нажмите клавишу Y, а затем —ВВОД.

    Снимок экрана: подтверждение командной строки для удаления группы ресурсов с помощью Azure PowerShell.