Ćwiczenie — aktualizowanie i usuwanie stosu wdrożenia

Ukończone

Jesteś na sprint 2 dla nowej aplikacji depozytów. Chcesz przetestować aktualizowanie stosu wdrożenia, definiując bazę danych Azure SQL Database w pliku Bicep. Chcesz sprawdzić, czy stos zarządza nowo zdefiniowanymi zasobami.

W tym ćwiczeniu zaktualizujesz utworzony wcześniej plik Bicep, aby uwzględnić nowe zasoby. Ponadto aktualizujesz i usuwasz stos wdrożenia, który zarządza zasobami.

  • Zaktualizuj plik Bicep, aby uwzględnić bazę danych Azure SQL Database.
  • Zaktualizuj stos wdrożenia, aby wdrożyć nową bazę danych.
  • Zweryfikuj zarządzane zasoby stosu wdrożenia.
  • Usuń stos wdrożenia i zarządzane zasoby.
  • Zweryfikuj usunięcie stosu wdrożenia i zarządzanych zasobów.

Aktualizowanie pliku Bicep w celu uwzględnienia bazy danych Azure SQL Database

  1. Otwórz plik main.bicep w programie Visual Studio Code.

  2. Dodaj wyróżniony kod do sekcji parameters pliku:

    // 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. Dodaj następujący kod w dolnej części pliku:

    // 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. Zapisz zmiany w pliku.

Aktualizowanie stosu wdrożenia

Po zaktualizowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby nowa baza danych Azure SQL Database została wdrożona w środowisku jako zasób zarządzany.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie 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. Zostanie wyświetlony komunikat z informacją, że stos już istnieje w bieżącej subskrypcji. Jeśli wartość akcji dla parametru niezarządzanego została zmieniona, ostrzeżenie ostrzega o nowych wartościach. Naciśnij y, a następnie Enter.

    Zrzut ekranu przedstawiający ostrzeżenie wiersza polecenia interfejsu wiersza polecenia platformy Azure, że stos wdrożenia już istnieje.

  3. Zostanie wyświetlony monit o wprowadzenie wartości dla sqlServerAdminUserNameelementu . Utwórz nazwę administratora programu SQL Server, a następnie ciąg "Enter".

    Zrzut ekranu przedstawiający wiersz polecenia interfejsu wiersza polecenia platformy Azure z monitem o wprowadzenie nazwy użytkownika administratora programu SQL Server.

  4. Zostanie wyświetlony monit o wprowadzenie wartości dla sqlServerAdminPasswordelementu . Utwórz złożone hasło dla administratora programu SQL Server, a następnie "Enter".

    Zrzut ekranu przedstawiający wiersz polecenia interfejsu wiersza polecenia platformy Azure z monitem o wprowadzenie hasła administratora programu SQL Server.

Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Po zaktualizowaniu pliku Bicep chcemy zaktualizować stos wdrożenia, aby nowa baza danych Azure SQL Database została wdrożona w środowisku jako zasób zarządzany.

  1. Aby zaktualizować stos wdrożenia, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. Zostanie wyświetlony monit o wprowadzenie wartości dla sqlServerAdminUserNameelementu . Utwórz nazwę administratora programu SQL Server, a następnie ciąg "Enter".

    Zrzut ekranu przedstawiający wiersz polecenia programu Azure PowerShell z monitem o wprowadzenie nazwy użytkownika administratora programu SQL Server.

  3. Zostanie wyświetlony monit o wprowadzenie wartości dla sqlServerAdminPasswordelementu . Utwórz złożone hasło dla administratora programu SQL Server, a następnie "Enter".

    Zrzut ekranu przedstawiający wiersz polecenia programu Azure PowerShell z monitem o wprowadzenie hasła administratora programu SQL Server.

  4. Poczekaj na zakończenie operacji aktualizacji przed przejściem do następnego zadania.

Weryfikowanie aktualizacji stosu wdrożenia i zarządzanych zasobów

Po zakończeniu aktualizacji chcemy zweryfikować, czy stos wdrożenia zarządza bazą danych Azure SQL Database. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

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

Wynik powinien wyglądać znajomo do następujących danych wyjściowych:

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

Zwróć uwagę na sekcję zasobów danych wyjściowych. Teraz jako zasoby zarządzane są wyświetlane serwery SQL i baza danych SQL.

Po zakończeniu aktualizacji chcemy zweryfikować, czy stos wdrożenia zarządza bazą danych Azure SQL Database. Aby wyświetlić konfigurację stosu wdrażania, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

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

Wynik powinien wyglądać znajomo do następujących danych wyjściowych:

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

Zwróć uwagę na sekcję zasobów danych wyjściowych. Teraz jako zasoby zarządzane są wyświetlane serwery SQL i baza danych SQL.

Usuwanie stosu wdrożenia

  1. Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie stosu wdrożenia przy użyciu interfejsu wiersza polecenia platformy Azure.

  3. Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.

  4. Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie grupy zasobów przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Aby usunąć stos wdrożenia i jego zasoby zarządzane, uruchom następujące polecenie w terminalu w programie Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć stos i określone zasoby.

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie stosu wdrożenia przy użyciu programu Azure PowerShell.

  3. Po zakończeniu operacji usuwania otwórz witrynę Azure Portal i sprawdź, czy stos wdrożenia i jego zasoby zostaną usunięte.

  4. Aby usunąć grupę zasobów używaną w tych ćwiczeniach, uruchom następujące polecenie z poziomu terminalu w programie Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. Zostanie wyświetlony monit o potwierdzenie, czy chcesz usunąć grupę zasobów. Naciśnij "Y", a następnie "Enter".

    Zrzut ekranu przedstawiający potwierdzenie wiersza polecenia umożliwiające usunięcie grupy zasobów przy użyciu programu Azure PowerShell.