Övning – Använda Bicep-parametrar med flera miljöer

Slutförd

Nu när din pipeline distribueras till båda dina miljöer är du redo att integrera med API:et från tredje part för produktgranskningar.

Ditt webbplatsteam har gett dig de API-nycklar och URL:er som din webbplats ska använda för att få åtkomst till tjänsten. Det finns olika värden för dina test- och produktionsmiljöer att använda. I den här lektionen uppdaterar du din pipeline för att konfigurera var och en av dina miljöer med rätt inställningar för API:et för produktgranskning.

Under processen gör du följande:

  • Skapa variabelgrupper för var och en av dina miljöer.
  • Uppdatera pipelinen så att den väljer rätt variabelgrupp för varje miljö i stället för att använda mallparametrar.
  • Uppdatera Bicep-filen för att sprida de inställningar som du behöver för API:et för produktgranskning.
  • Uppdatera variabelgruppen och pipelinen för att ange värdena för inställningarna för produktgransknings-API:et.
  • Granska pipelineresultaten och ändringarna i Din Azure-miljö.

Lägga till variabelgrupper

Eftersom du lägger till fler parametrar som varierar mellan varje miljö bestämmer du dig för att flytta från att lägga till dina pipelineparametrar direkt i dina YAML-pipelinefiler. I stället använder du en variabelgrupp för att hålla ihop värdena för varje miljö.

  1. Gå till Pipelines-biblioteket> i webbläsaren.

    Skärmbild av Azure DevOps som visar menyalternativet Bibliotek under kategorin Pipelines.

  2. Välj knappen + Variabelgrupp.

    Skärmbild av azure DevOps-bibliotekssidan och knappen för att lägga till en variabelgrupp.

  3. Ange ToyWebsiteTest som variabelgruppnamn.

  4. Välj knappen + Lägg till för att lägga till variabler i variabelgruppen. Skapa två variabler med följande inställningar:

    Name Värde
    EnvironmentType Test
    ResourceGroupName ToyWebsiteTest

    Observera att du inte definierar namnet på tjänstanslutningen i variabelgruppen. Tjänstanslutningsnamn har särskilda regler för hur de kan anges. I den här modulen använder du parametrar för pipelinemallar.

    Skärmbild av testvariabelgruppen och variablerna.

  5. Välj Spara.

  6. Välj knappen Bakåt i webbläsaren för att återgå till listan över variabelgrupper.

  7. Lägg till en annan variabelgrupp med namnet ToyWebsiteProduction. Skapa två variabler med följande inställningar:

    Name Värde
    EnvironmentType Produktion
    ResourceGroupName ToyWebsiteProduction

    Skärmbild av produktionsvariabelgruppen och variablerna.

    Observera att variabelnamnen är samma för båda miljöerna, men värdena är olika.

  8. Spara produktionsvariabelgruppen.

Uppdatera mallen för distributionspipeline för att använda variabelgruppen

  1. Öppna filen deploy.yml i Visual Studio Code.

  2. Ta bort parametrarna resourceGroupName och serviceConnectionName överst i filen. Ta inte bort parametrarna environmentType eller deploymentDefaultLocation .

    parameters:
    - name: environmentType
      type: string
    - name: deploymentDefaultLocation
      type: string
      default: westus3
    
  3. ValidateBicepCode Uppdatera jobbet för att importera variabelgruppen:

    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
    
  4. ValidateBicepCode Uppdatera jobbet för att automatiskt härleda tjänstanslutningsnamnet baserat på environmentType parametervärdet:

    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureResourceManagerTemplateDeployment@3
              name: RunPreflightValidation
              displayName: Run preflight validation
              inputs:
                connectedServiceName: ToyWebsite${{parameters.environmentType}}
                location: ${{parameters.deploymentDefaultLocation}}
                deploymentMode: Validation
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep
                overrideParameters: >
                  -environmentType $(EnvironmentType)
    
  5. ValidateBicepCode Uppdatera jobbet så att den importerade variabelgruppen används för att ange resursgruppens namn och miljötypargument för distributionsaktiviteten:

    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureResourceManagerTemplateDeployment@3
              name: RunPreflightValidation
              displayName: Run preflight validation
              inputs:
                connectedServiceName: ToyWebsite${{parameters.environmentType}}
                location: ${{parameters.deploymentDefaultLocation}}
                deploymentMode: Validation
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep
                overrideParameters: >
                  -environmentType $(EnvironmentType)
    
  6. Gör ändringarna i PreviewAzureChanges jobbet:

    - ${{ if eq(parameters.environmentType, 'Production') }}:
      - stage: Preview_${{parameters.environmentType}}
        displayName: Preview (${{parameters.environmentType}} Environment)
        jobs:
        - job: PreviewAzureChanges
          displayName: Preview Azure changes
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureCLI@2
              name: RunWhatIf
              displayName: Run what-if
              inputs:
                azureSubscription: ToyWebsite${{parameters.environmentType}}
                scriptType: 'bash'
                scriptLocation: 'inlineScript'
                inlineScript: |
                  az deployment group what-if \
                    --resource-group $(ResourceGroupName) \
                    --template-file deploy/main.bicep \
                    --parameters environmentType=$(EnvironmentType)
    
  7. Gör samma ändringar i distributionsjobbet Deploy :

    - stage: Deploy_${{parameters.environmentType}}
      displayName: Deploy (${{parameters.environmentType}} Environment)
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        variables:
        - group: ToyWebsite${{parameters.environmentType}}
        environment: ${{parameters.environmentType}}
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: ToyWebsite${{parameters.environmentType}}
                    deploymentName: $(Build.BuildNumber)
                    location: ${{parameters.deploymentDefaultLocation}}
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
                    deploymentOutputs: deploymentOutputs
    
  8. Kontrollera att din deploy.yml fil nu ser ut som följande kod:

    parameters:
    - name: environmentType
      type: string
    - name: deploymentDefaultLocation
      type: string
      default: westus3
    
    stages:
    
    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureResourceManagerTemplateDeployment@3
              name: RunPreflightValidation
              displayName: Run preflight validation
              inputs:
                connectedServiceName: ToyWebsite${{parameters.environmentType}}
                location: ${{parameters.deploymentDefaultLocation}}
                deploymentMode: Validation
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep
                overrideParameters: >
                  -environmentType $(EnvironmentType)
    
    - ${{ if eq(parameters.environmentType, 'Production') }}:
      - stage: Preview_${{parameters.environmentType}}
        displayName: Preview (${{parameters.environmentType}} Environment)
        jobs:
        - job: PreviewAzureChanges
          displayName: Preview Azure changes
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureCLI@2
              name: RunWhatIf
              displayName: Run what-if
              inputs:
                azureSubscription: ToyWebsite${{parameters.environmentType}}
                scriptType: 'bash'
                scriptLocation: 'inlineScript'
                inlineScript: |
                  az deployment group what-if \
                    --resource-group $(ResourceGroupName) \
                    --template-file deploy/main.bicep \
                    --parameters environmentType=$(EnvironmentType)
    
    - stage: Deploy_${{parameters.environmentType}}
      displayName: Deploy (${{parameters.environmentType}} Environment)
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        variables:
        - group: ToyWebsite${{parameters.environmentType}}
        environment: ${{parameters.environmentType}}
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: ToyWebsite${{parameters.environmentType}}
                    deploymentName: $(Build.BuildNumber)
                    location: ${{parameters.deploymentDefaultLocation}}
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
                    deploymentOutputs: deploymentOutputs
    
                - bash: |
                    echo "##vso[task.setvariable variable=appServiceAppHostName;isOutput=true]$(echo $DEPLOYMENT_OUTPUTS | jq -r '.appServiceAppHostName.value')"
                  name: SaveDeploymentOutputs
                  displayName: Save deployment outputs into variables
                  env:
                    DEPLOYMENT_OUTPUTS: $(deploymentOutputs)
    
    - stage: SmokeTest_${{parameters.environmentType}}
      displayName: Smoke Test (${{parameters.environmentType}} Environment)
      jobs:
      - job: SmokeTest
        displayName: Smoke test
        variables:
          appServiceAppHostName: $[ stageDependencies.Deploy_${{parameters.environmentType}}.DeployWebsite.outputs['DeployWebsite.SaveDeploymentOutputs.appServiceAppHostName'] ]
        steps:
          - task: PowerShell@2
            name: RunSmokeTests
            displayName: Run smoke tests
            inputs:
              targetType: inline
              script: |
                $container = New-PesterContainer `
                  -Path 'deploy/Website.Tests.ps1' `
                  -Data @{ HostName = '$(appServiceAppHostName)' }
                Invoke-Pester `
                  -Container $container `
                  -CI
    
          - task: PublishTestResults@2
            name: PublishTestResults
            displayName: Publish test results
            condition: always()
            inputs:
              testResultsFormat: NUnit
              testResultsFiles: 'testResults.xml'
    
  9. Spara ändringarna i filen.

Uppdatera pipelinedefinitionen för att förenkla parameterlistan

  1. Öppna filen azure-pipelines.yml.

  2. Uppdatera de steg som använder mallar för att ta bort parametrarna resourceGroupName och serviceConnectionName . Lämna bara parametern environmentType .

    trigger:
      batch: true
      branches:
        include:
        - main
    
    pool:
      vmImage: ubuntu-latest
    
    stages:
    
    # Lint the Bicep file.
    - stage: Lint
      jobs: 
      - template: pipeline-templates/lint.yml
    
    # Deploy to the test environment.
    - template: pipeline-templates/deploy.yml
      parameters:
        environmentType: Test
    
    # Deploy to the production environment.
    - template: pipeline-templates/deploy.yml
      parameters:
        environmentType: Production
    
  3. Spara ändringarna i filen.

  4. Genomför dina ändringar på Git-lagringsplatsen utan att skicka dem med hjälp av följande kommandon:

    git add .
    git commit -m "Use variable groups"
    

Uppdatera Bicep-filen

  1. Öppna filen main.bicep.

  2. Under parametrarna som redan finns i filen lägger du till följande parametrar för det nya gransknings-API:et:

    @description('The URL to the product review API.')
    param reviewApiUrl string
    
    @secure()
    @description('The API key to use when accessing the product review API.')
    param reviewApiKey string
    
  3. Uppdatera resursdefinitionen appServiceApp för att ange url:en och nyckeln för gransknings-API:et till programmet, så att webbplatsens kod kan använda dem:

    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          appSettings: [
            {
              name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
              value: applicationInsights.properties.InstrumentationKey
            }
            {
              name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
              value: applicationInsights.properties.ConnectionString
            }
            {
              name: 'ReviewApiUrl'
              value: reviewApiUrl
            }
            {
              name: 'ReviewApiKey'
              value: reviewApiKey
            }
          ]
        }
      }
    }
    
  4. Spara ändringarna i filen.

Uppdatera variabelgrupperna

  1. I webbläsaren går du till Pipelines-biblioteket> och öppnar variabelgrupperna ToyWebsiteTest.

  2. Lägg till följande variabler:

    Name Värde
    ReviewApiKey sandboxsecretkey
    ReviewApiUrl https://sandbox.contoso.com/reviews
  3. Välj hänglåsikonen bredvid variabeln ReviewApiKey . Det här steget instruerar Azure Pipelines att hantera variabelns värde på ett säkert sätt.

    Skärmbild av testvariabelgruppen och knappen hemlig variabel.

  4. Spara variabelgruppen.

    Skärmbild av testvariabelgruppen med uppdaterade variabler.

  5. Uppdatera variabelgruppen ToyWebsiteProduction för att lägga till en liknande uppsättning variabler:

    Name Värde
    ReviewApiKey productionsecretkey
    ReviewApiUrl https://api.contoso.com/reviews

    Kom ihåg att välja hänglåsikonen bredvid variabeln ReviewApiKey .

    Skärmbild av produktionsvariabelgruppen med uppdaterade variabler.

  6. Spara variabelgruppen.

Lägg till gransknings-API-variablerna i variabelgrupperna

  1. Öppna filen deploy.yml i Visual Studio Code.

  2. ValidateBicepCode I jobbet lägger du till parametervärdena för gransknings-API i distributionsuppgiften:

    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureResourceManagerTemplateDeployment@3
              name: RunPreflightValidation
              displayName: Run preflight validation
              inputs:
                connectedServiceName: ToyWebsite${{parameters.environmentType}}
                location: ${{parameters.deploymentDefaultLocation}}
                deploymentMode: Validation
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep
                overrideParameters: >
                  -environmentType $(EnvironmentType)
                  -reviewApiUrl $(ReviewApiUrl)
                  -reviewApiKey $(ReviewApiKey)
    
  3. Gör samma ändring i PreviewAzureChanges jobbet:

    - ${{ if eq(parameters.environmentType, 'Production') }}:
      - stage: Preview_${{parameters.environmentType}}
        displayName: Preview (${{parameters.environmentType}} Environment)
        jobs:
        - job: PreviewAzureChanges
          displayName: Preview Azure changes
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureCLI@2
              name: RunWhatIf
              displayName: Run what-if
              inputs:
                azureSubscription: ToyWebsite${{parameters.environmentType}}
                scriptType: 'bash'
                scriptLocation: 'inlineScript'
                inlineScript: |
                  az deployment group what-if \
                    --resource-group $(ResourceGroupName) \
                    --template-file deploy/main.bicep \
                    --parameters environmentType=$(EnvironmentType) \
                                 reviewApiUrl=$(ReviewApiUrl) \
                                 reviewApiKey=$(ReviewApiKey)
    

    Viktigt!

    Se till att lägga till omvänt snedstreck (\) i slutet av raden som anger environmentType parametervärdet och på den efterföljande raden. Tecknet \ anger att ytterligare rader ingår i samma Azure CLI-kommando.

  4. Gör samma ändring i Deploy jobbet:

    - stage: Deploy_${{parameters.environmentType}}
      displayName: Deploy (${{parameters.environmentType}} Environment)
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        variables:
        - group: ToyWebsite${{parameters.environmentType}}
        environment: ${{parameters.environmentType}}
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: ToyWebsite${{parameters.environmentType}}
                    deploymentName: $(Build.BuildNumber)
                    location: ${{parameters.deploymentDefaultLocation}}
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
                      -reviewApiUrl $(ReviewApiUrl)
                      -reviewApiKey $(ReviewApiKey)
                    deploymentOutputs: deploymentOutputs
    
  5. Kontrollera att din deploy.yml fil nu ser ut som följande kod:

    parameters:
    - name: environmentType
      type: string
    - name: deploymentDefaultLocation
      type: string
      default: westus3
    
    stages:
    
    - ${{ if ne(parameters.environmentType, 'Production') }}:
      - stage: Validate_${{parameters.environmentType}}
        displayName: Validate (${{parameters.environmentType}} Environment)
        jobs:
        - job: ValidateBicepCode
          displayName: Validate Bicep code
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureResourceManagerTemplateDeployment@3
              name: RunPreflightValidation
              displayName: Run preflight validation
              inputs:
                connectedServiceName: ToyWebsite${{parameters.environmentType}}
                location: ${{parameters.deploymentDefaultLocation}}
                deploymentMode: Validation
                resourceGroupName: $(ResourceGroupName)
                csmFile: deploy/main.bicep
                overrideParameters: >
                  -environmentType $(EnvironmentType)
                  -reviewApiUrl $(ReviewApiUrl)
                  -reviewApiKey $(ReviewApiKey)
    
    - ${{ if eq(parameters.environmentType, 'Production') }}:
      - stage: Preview_${{parameters.environmentType}}
        displayName: Preview (${{parameters.environmentType}} Environment)
        jobs:
        - job: PreviewAzureChanges
          displayName: Preview Azure changes
          variables:
          - group: ToyWebsite${{parameters.environmentType}}
          steps:
            - task: AzureCLI@2
              name: RunWhatIf
              displayName: Run what-if
              inputs:
                azureSubscription: ToyWebsite${{parameters.environmentType}}
                scriptType: 'bash'
                scriptLocation: 'inlineScript'
                inlineScript: |
                  az deployment group what-if \
                    --resource-group $(ResourceGroupName) \
                    --template-file deploy/main.bicep \
                    --parameters environmentType=$(EnvironmentType) \
                                 reviewApiUrl=$(ReviewApiUrl) \
                                 reviewApiKey=$(ReviewApiKey)
    
    - stage: Deploy_${{parameters.environmentType}}
      displayName: Deploy (${{parameters.environmentType}} Environment)
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        variables:
        - group: ToyWebsite${{parameters.environmentType}}
        environment: ${{parameters.environmentType}}
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: ToyWebsite${{parameters.environmentType}}
                    deploymentName: $(Build.BuildNumber)
                    location: ${{parameters.deploymentDefaultLocation}}
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
                      -reviewApiUrl $(ReviewApiUrl)
                      -reviewApiKey $(ReviewApiKey)
                    deploymentOutputs: deploymentOutputs
    
                - bash: |
                    echo "##vso[task.setvariable variable=appServiceAppHostName;isOutput=true]$(echo $DEPLOYMENT_OUTPUTS | jq -r '.appServiceAppHostName.value')"
                  name: SaveDeploymentOutputs
                  displayName: Save deployment outputs into variables
                  env:
                    DEPLOYMENT_OUTPUTS: $(deploymentOutputs)
    
    - stage: SmokeTest_${{parameters.environmentType}}
      displayName: Smoke Test (${{parameters.environmentType}} Environment)
      jobs:
      - job: SmokeTest
        displayName: Smoke test
        variables:
          appServiceAppHostName: $[ stageDependencies.Deploy_${{parameters.environmentType}}.DeployWebsite.outputs['DeployWebsite.SaveDeploymentOutputs.appServiceAppHostName'] ]
        steps:
          - task: PowerShell@2
            name: RunSmokeTests
            displayName: Run smoke tests
            inputs:
              targetType: inline
              script: |
                $container = New-PesterContainer `
                  -Path 'deploy/Website.Tests.ps1' `
                  -Data @{ HostName = '$(appServiceAppHostName)' }
                Invoke-Pester `
                  -Container $container `
                  -CI
    
          - task: PublishTestResults@2
            name: PublishTestResults
            displayName: Publish test results
            condition: always()
            inputs:
              testResultsFormat: NUnit
              testResultsFiles: 'testResults.xml'
    
  6. Checka in och skicka ändringarna till Git-lagringsplatsen med hjälp av följande kommandon:

    git add .
    git commit -m "Add new review API settings to Bicep file and pipeline"
    git push
    

Granska distributionsresultaten

  1. Gå till Pipelines i webbläsaren.

  2. Välj den senaste körningen av din pipeline.

    Vänta tills pipelinen pausas innan fasen Distribuera (produktionsmiljö). Det kan ta några minuter innan pipelinen når den här punkten.

  3. Om du uppmanas att bevilja behörighet att komma åt en resurs väljer du Visa och sedan Tillåt.

  4. Godkänn distributionen till produktionsmiljön genom att välja Granska>godkänn.

    Vänta tills pipelinen har körts.

  5. Välj Pipelines-miljöer>.

  6. Välj produktionsmiljön.

    Observera att du nu ser flera distributioner i miljöns historik.

  7. I en webbläsare går du till Azure-portalen.

  8. Gå till resursgruppen ToyWebsiteProduction .

  9. Öppna Azure App Service-appen i listan över resurser.

    Välj Konfiguration.

    Skärmbild av Azure Portal som visar App Service-appen och menyalternativet Konfiguration.

  10. Välj Visa värden.

    Skärmbild av Azure Portal som visar App Service-appinställningarna och knappen för att visa värden.

  11. Observera att produktionsplatsens värden för inställningarna ReviewApiKey och ReviewApiUrl är inställda på de värden som du konfigurerade i produktionsvariabelgruppen.

    Skärmbild av Azure Portal som visar App Service-appinställningarna och konfigurationsinställningarna.

  12. Jämför de aktuella värdena med konfigurationsinställningarna för App Service-appen i resursgruppen ToyWebsiteTest . Observera att värdena skiljer sig.

Rensa resurserna

Nu när du har slutfört övningen kan du ta bort resurserna så att du inte debiteras för dem.

Kör följande kommandon i Visual Studio Code-terminalen:

az group delete --resource-group ToyWebsiteTest --yes --no-wait
az group delete --resource-group ToyWebsiteProduction --yes --no-wait

Resursgruppen tas bort i bakgrunden.

Remove-AzResourceGroup -Name ToyWebsiteTest -Force
Remove-AzResourceGroup -Name ToyWebsiteProduction -Force