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

Concluído

Você está no sprint 2 para o novo aplicativo de depósitos. Você deseja 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 seus 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 seu 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 ficheiro:

    // 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. Guarde as alterações ao ficheiro.

Atualizar a pilha de implantação

Com o arquivo Bicep atualizado, queremos 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 seguinte comando do 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ê recebe uma mensagem informando que a pilha já existe na assinatura atual. Se o valor da ação no parâmetro unmanage for alterado, o aviso alertará você sobre os novos valores. Pressione y, seguido de 'Enter'.

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

  3. Você será solicitado a inserir um valor para sqlServerAdminUserName. Crie um nome para o administrador do SQL Server, seguido de 'Enter'.

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

  4. Você será solicitado a inserir um valor para sqlServerAdminPassword. Crie uma senha complexa para o administrador do SQL Server, seguida por 'Enter'.

    Uma captura de tela mostrando a linha de comando da CLI do Azure solicitando que você insira uma senha de administrador do SQL Server.

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

Com o arquivo Bicep atualizado, queremos 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 seguinte comando do terminal no Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Você será solicitado a inserir um valor para sqlServerAdminUserName. Crie um nome para o administrador do SQL Server, seguido de 'Enter'.

    Uma captura de tela mostrando a linha de comando do Azure PowerShell solicitando que você insira um nome de usuário de administrador do SQL Server.

  3. Você será solicitado a inserir um valor para sqlServerAdminPassword. Crie uma senha complexa para o administrador do SQL Server, seguida por 'Enter'.

    Uma captura de tela mostrando a linha de comando do Azure PowerShell solicitando que você insira uma senha de administrador do SQL Server.

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

Verifique a atualização para a pilha de implantação e os recursos gerenciados

Com a atualização concluída, queremos validar 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 seguinte comando do terminal no Visual Studio Code.

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

O resultado deve parecer familiar para a seguinte 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"
}

Tome nota da secção de recursos da saída. Agora vemos o servidor SQL e o banco de dados SQL listados como recursos gerenciados.

Com a atualização concluída, queremos validar 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 seguinte comando do terminal no Visual Studio Code.

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

O resultado deve parecer familiar para a seguinte 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               ""

Tome nota da secção de recursos da saída. Agora vemos o servidor SQL e o banco de dados SQL listados como recursos gerenciados.

Excluir a pilha de implantação

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

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Você será solicitado a confirmar se deseja excluir a pilha e os recursos especificados.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir a pilha de implantação usando a CLI do Azure.

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

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

    az group delete \
        -name rg-depositsApplication
    
  5. Ser-lhe-á pedido que confirme se pretende remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir o grupo de recursos usando a CLI do Azure.

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

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Você será solicitado a confirmar se deseja excluir a pilha e os recursos especificados.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir a pilha de implantação usando o Azure PowerShell.

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

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

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Ser-lhe-á pedido que confirme se pretende remover o grupo de recursos. Pressione 'Y', seguido de 'Enter'.

    Uma captura de tela mostrando uma confirmação de linha de comando para excluir o grupo de recursos usando o Azure PowerShell.