Oefening: een implementatiestack bijwerken en verwijderen

Voltooid

U staat op sprint 2 voor de nieuwe stortingsaanvraag. U wilt het bijwerken van de implementatiestack testen door een Azure SQL-database in het Bicep-bestand te definiëren. U wilt controleren of de stack de zojuist gedefinieerde resources beheert.

In deze oefening werkt u het Bicep-bestand bij dat u eerder hebt gemaakt om nieuwe resources op te nemen. U kunt ook de implementatiestack bijwerken en verwijderen waarmee uw resources worden beheerd.

  • Werk het Bicep-bestand bij om een Azure SQL-database op te nemen.
  • Werk de implementatiestack bij om de nieuwe database te implementeren.
  • Valideer de beheerde resources van de implementatiestack.
  • Verwijder de implementatiestack en beheerde resources.
  • Valideer het verwijderen van de implementatiestack en de beheerde resources.

Het Bicep-bestand bijwerken om de Azure SQL-database op te nemen

  1. Open het bestand main.bicep in Visual Studio Code.

  2. Voeg de gemarkeerde code toe aan de sectie parameters van uw bestand:

    // 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. Voeg de volgende code toe aan de onderkant van het bestand:

    // 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. Sla de wijzigingen in het bestand op.

De implementatiestack bijwerken

Nu het Bicep-bestand is bijgewerkt, willen we de implementatiestack bijwerken, zodat de nieuwe Azure SQL-database als beheerde resource in de omgeving wordt geïmplementeerd.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in 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. U ontvangt een bericht waarin staat dat de stack al bestaat in het huidige abonnement. Als de waarde van de actie voor onbeheerde parameter is gewijzigd, wordt u gewaarschuwd voor de nieuwe waarden. Druk op y, gevolgd door Enter.

    Een schermopname van de Azure CLI-opdrachtregelwaarschuwing dat de implementatiestack al bestaat.

  3. U wordt gevraagd een waarde in te voeren voor sqlServerAdminUserName. Maak een naam voor de SQL-serverbeheerder, gevolgd door Enter.

    Een schermopname van de Azure CLI-opdrachtregel waarin u wordt gevraagd om een gebruikersnaam van de SQL-serverbeheerder in te voeren.

  4. U wordt gevraagd een waarde in te voeren voor sqlServerAdminPassword. Maak een complex wachtwoord voor de SQL-serverbeheerder, gevolgd door Enter.

    Een schermopname van de Azure CLI-opdrachtregel waarin u wordt gevraagd een BEHEERDERSwachtwoord voor SQL Server in te voeren.

Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

Nu het Bicep-bestand is bijgewerkt, willen we de implementatiestack bijwerken, zodat de nieuwe Azure SQL-database als beheerde resource in de omgeving wordt geïmplementeerd.

  1. Als u de implementatiestack wilt bijwerken, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Set-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -TemplateFile ./main.bicep `
        -ActionOnUnmanage DeleteAll `
        -DenySettingsMode none
    
  2. U wordt gevraagd een waarde in te voeren voor sqlServerAdminUserName. Maak een naam voor de SQL-serverbeheerder, gevolgd door Enter.

    Een schermopname van de Azure PowerShell-opdrachtregel waarin u wordt gevraagd om de gebruikersnaam van een SQL Server-beheerder in te voeren.

  3. U wordt gevraagd een waarde in te voeren voor sqlServerAdminPassword. Maak een complex wachtwoord voor de SQL-serverbeheerder, gevolgd door Enter.

    Een schermopname van de Azure PowerShell-opdrachtregel waarin u wordt gevraagd een beheerderswachtwoord voor SQL Server in te voeren.

  4. Wacht tot de updatebewerking is voltooid voordat u verdergaat met de volgende taak.

Controleer de update naar de implementatiestack en de beheerde resources

Nu de update is voltooid, willen we valideren dat de implementatiestack de Azure SQL-database beheert. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

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

Het resultaat moet bekend lijken op de volgende uitvoer:

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

Let op de sectie resources van de uitvoer. We zien nu dat de SQL-server en SQL-database worden vermeld als beheerde resources.

Nu de update is voltooid, willen we valideren dat de implementatiestack de Azure SQL-database beheert. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

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

Het resultaat moet bekend lijken op de volgende uitvoer:

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

Let op de sectie resources van de uitvoer. We zien nu dat de SQL-server en SQL-database worden vermeld als beheerde resources.

De implementatiestack verwijderen

  1. Als u de implementatiestack en de bijbehorende beheerde resources wilt verwijderen, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az stack group delete \
        --name stack-deposits \
        --resource-group rg-depositsApplication \
        --action-on-unmanage deleteAll
    
  2. U wordt gevraagd om te bevestigen of u de stack en de opgegeven resources wilt verwijderen.

    Een schermopname met een bevestiging van de opdrachtregel om de implementatiestack te verwijderen met behulp van Azure CLI.

  3. Nadat de verwijderbewerking is voltooid, opent u Azure Portal en controleert u of de implementatiestack en de bijbehorende resources zijn verwijderd.

  4. Als u de resourcegroep wilt verwijderen die in deze oefeningen wordt gebruikt, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    az group delete \
        -name rg-depositsApplication
    
  5. U wordt gevraagd om te bevestigen of u de resourcegroep wilt verwijderen. Druk op Y, gevolgd door Enter.

    Een schermopname met een bevestiging van de opdrachtregel om de resourcegroep te verwijderen met behulp van Azure CLI.

  1. Als u de implementatiestack en de bijbehorende beheerde resources wilt verwijderen, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Remove-AzResourceGroupDeploymentStack `
        -Name stack-deposits `
        -ResourceGroupName rg-depositsApplication `
        -ActionOnUnmanage DeleteAll
    
  2. U wordt gevraagd om te bevestigen of u de stack en de opgegeven resources wilt verwijderen.

    Een schermopname met een bevestiging van de opdrachtregel om de implementatiestack te verwijderen met behulp van Azure PowerShell.

  3. Nadat de verwijderbewerking is voltooid, opent u Azure Portal en controleert u of de implementatiestack en de bijbehorende resources zijn verwijderd.

  4. Als u de resourcegroep wilt verwijderen die in deze oefeningen wordt gebruikt, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.

    Remove-AzResourceGroup `
        -Name rg-depositsApplication
    
  5. U wordt gevraagd om te bevestigen of u de resourcegroep wilt verwijderen. Druk op Y, gevolgd door Enter.

    Een schermopname van een opdrachtregelbevestiging om de resourcegroep te verwijderen met behulp van Azure PowerShell.