Exercício – Atualizar e excluir uma pilha de implantação

Concluído

Você está no sprint 2 para o novo aplicativo de depósitos. Seu objetivo é testar a atualização da pilha de implantação definindo um banco de dados SQL do Azure no arquivo Bicep. Você deseja verificar se a pilha está gerenciando os recursos recém-definidos.

Neste exercício, você atualiza o arquivo Bicep criado anteriormente para incluir novos recursos. Você também atualiza e exclui a pilha de implantação que gerencia os recursos.

  • Atualize o arquivo Bicep para incluir um banco de dados SQL do Azure.
  • Atualize a pilha de implantação para implantar o novo banco de dados.
  • Valide os recursos gerenciados da pilha de implantação.
  • Exclua a pilha de implantação e os recursos gerenciados.
  • Valide a exclusão da pilha de implantação e dos recursos gerenciados.

Atualizar o arquivo Bicep para incluir o banco de dados SQL do Azure

  1. Abra o arquivo main.bicep no Visual Studio Code.

  2. Adicione o código realçado à seção de parâmetros do arquivo:

    // 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. Adicione o seguinte código à parte inferior do arquivo:

    // 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. Salve as alterações no arquivo.

Atualizar a pilha de implantação

Depois da atualização do arquivo Bicep, o objetivo é atualizar a pilha de implantação para que o novo banco de dados SQL do Azure seja implantado no ambiente como um recurso gerenciado.

  1. Para atualizar a pilha de implantação, execute o comando a seguir no terminal no 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. Você receberá uma mensagem informando que a pilha já existe na assinatura atual. Se o valor do parâmetro action on unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione y e, em seguida, “Enter”.

    Captura de tela que mostra a linha de comando da CLI do Azure avisando que a pilha de implantação já existe.

  3. Você precisará inserir um valor para sqlServerAdminUserName. Crie um nome para o administrador do SQL Server e pressione “Enter”.

    Captura de tela que mostra a linha de comando da CLI do Azure solicitando que você insira um nome de usuário de administrador do SQL Server.

  4. Você precisará inserir um valor para sqlServerAdminPassword. Crie uma senha complexa para o administrador do servidor SQL e pressione “Enter”.

    Captura de tela que mostra a linha de comando da CLI do Azure solicitando que você insira uma senha de administrador do servidor SQL.

Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Depois da atualização do arquivo Bicep, o objetivo é atualizar a pilha de implantação para que o novo banco de dados SQL do Azure seja implantado no ambiente como um recurso gerenciado.

  1. Para atualizar a pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Você precisará inserir um valor para sqlServerAdminUserName. Crie um nome para o administrador do SQL Server e pressione “Enter”.

    Captura de tela que mostra a linha de comando do Azure PowerShell solicitando que você insira um nome de usuário de administrador do servidor SQL.

  3. Você precisará inserir um valor para sqlServerAdminPassword. Crie uma senha complexa para o administrador do servidor SQL e pressione “Enter”.

    Captura de tela que mostra a linha de comando do Azure PowerShell solicitando que você insira uma senha de administrador do servidor SQL.

  4. Aguarde a conclusão da operação de atualização antes de passar para a próxima tarefa.

Verificar a atualização da pilha de implantação e dos recursos gerenciados

Após a atualização, o objetivo é verificar se a pilha de implantação está gerenciando o banco de dados SQL do Azure. Para exibir a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.

az stack group show \
    --resource-group rg-depositsApplication \
    --name stack-deposits

O resultado será semelhante a esta saída:

{
  "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"
}

Observe a seção de recursos da saída. Agora o SQL Server e o banco de dados SQL estão listados como recursos gerenciados.

Após a atualização, o objetivo é verificar se a pilha de implantação está gerenciando o banco de dados SQL do Azure. Para exibir a configuração da pilha de implantação, execute o comando a seguir no terminal no Visual Studio Code.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication `
    -Name stack-deposits

O resultado será semelhante a esta saída:

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               ""

Observe a seção de recursos da saída. Agora o SQL Server e o banco de dados SQL estão listados como recursos gerenciados.

Excluir a implantação de pilha

  1. Para excluir a pilha de implantação e os recursos gerenciados, execute o comando a seguir no terminal no Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Será solicitada a confirmação da exclusão da pilha e dos recursos especificados.

    Captura de tela que mostra a linha de comando com uma solicitação de confirmação da exclusão da pilha de implantação usando a CLI do Azure.

  3. Após a operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e os recursos foram removidos.

  4. Para excluir o grupo de recursos usado nesses exercícios, execute o comando a seguir no terminal no Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Será solicitada a confirmação da remoção do grupo de recursos. Pressione “S” e, em seguida, “Enter”.

    Captura de tela que mostra a linha de comando com uma solicitação de confirmação da exclusão do grupo de recursos usando a CLI do Azure.

  1. Para excluir a pilha de implantação e os recursos gerenciados, execute o comando a seguir no terminal no Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Será solicitada a confirmação da exclusão da pilha e dos recursos especificados.

    Captura de tela que mostra a linha de comando com uma solicitação de confirmação da exclusão da pilha de implantação usando o Azure PowerShell.

  3. Após a operação de exclusão, abra o portal do Azure e verifique se a pilha de implantação e os recursos foram removidos.

  4. Para excluir o grupo de recursos usado nesses exercícios, execute o comando a seguir no terminal no Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Será solicitada a confirmação da remoção do grupo de recursos. Pressione “S” e, em seguida, “Enter”.

    Captura de tela que mostra a linha de comando com uma solicitação de confirmação da exclusão do grupo de recursos usando o Azure PowerShell.