Übung: Verwenden von Bicep-Parametern mit mehreren Umgebungen

Abgeschlossen

Nachdem Ihre Pipeline nun in beiden Umgebungen bereitgestellt wird, können Sie die Drittanbieter-API für Produktüberprüfungen integrieren.

Ihr Websiteteam hat Ihnen die API-Schlüssel und URLs bereitgestellt, die Ihre Website für den Zugriff auf den Dienst verwenden sollte. Es gibt unterschiedliche Werte für Ihre Test- und Produktionsumgebung. In dieser Lerneinheit aktualisieren Sie Ihre Pipeline, um jede Ihrer Umgebungen mit den richtigen Einstellungen für die Produktüberprüfungs-API zu konfigurieren.

In dem Prozess gehen Sie wie folgt vor:

  • Erstellen Sie Variablengruppen für jede Ihrer Umgebungen.
  • Aktualisieren Sie die Pipeline so, dass sie die richtige Variablengruppe für jede Umgebung auswählt, anstatt Vorlagenparameter zu verwenden.
  • Aktualisieren Sie Ihre Bicep-Datei, um die Einstellungen zu übergeben, die Sie für die Produktüberprüfungs-API benötigen.
  • Aktualisieren Sie die Variablengruppe und die Pipeline, um die Werte für die Einstellungen der Produktüberprüfungs-API festzulegen.
  • Überprüfen Sie die Pipelineergebnisse und die Änderungen an Ihrer Azure-Umgebung.

Hinzufügen von Variablengruppen

Da Sie weitere Parameter hinzufügen, die je nach Umgebung variieren, entscheiden Sie sich, ihre Pipelineparameter nicht mehr direkt zu Ihren YAML-Pipelinedateien hinzuzufügen. Stattdessen verwenden Sie eine Variablengruppe, um die Werte für jede Umgebung zusammenzuhalten.

  1. Wechseln Sie in Ihrem Browser zu Pipelines>Bibliothek.

    Screenshot: Azure DevOps mit dem Menüelement „Bibliothek“ unter der Kategorie „Pipelines“

  2. Wählen Sie die Schaltfläche + Variablengruppe aus.

    Screenshot: Azure DevOps-Seite „Bibliothek“ mit Schaltfläche zum Hinzufügen einer Variablengruppe

  3. Geben Sie als Namen für die Variablengruppe ToyWebsiteTest ein.

  4. Wählen Sie die Schaltfläche + Hinzufügen aus, um der Variablengruppe Variablen hinzuzufügen. Erstellen Sie zwei Variablen mit den folgenden Einstellungen:

    Name Wert
    EnvironmentType Test
    ResourceGroupName ToyWebsiteTest

    Beachten Sie, dass Sie den Dienstverbindungsnamen nicht in der Variablengruppe definieren. Es gibt spezielle Regeln dafür, wie Dienstverbindungsnamen angegeben werden können. In diesem Modul verwenden Sie Pipelinevorlagenparameter.

    Screenshot: Testvariablengruppe und Variablen

  5. Wählen Sie Speichern aus.

  6. Wählen Sie in Ihrem Browser die Schaltfläche Zurück aus, um zur Liste der Variablengruppen zurückzukehren.

  7. Fügen Sie eine weitere Variablengruppe namens ToyWebsiteProduction hinzu. Erstellen Sie zwei Variablen mit den folgenden Einstellungen:

    Name Wert
    EnvironmentType Bereitstellung
    ResourceGroupName ToyWebsiteProduction

    Screenshot: Produktionsvariablengruppe und Variablen

    Beachten Sie, dass die Variablennamen für beide Umgebungen identisch sind, die Werte sich jedoch unterscheiden.

  8. Speichern Sie die Produktionsvariablengruppe.

Aktualisieren der Bereitstellungspipelinevorlage für die Verwendung der Variablengruppe

  1. Öffnen Sie in Visual Studio Code die Datei deploy.yml.

  2. Entfernen Sie oben in der Datei die Parameter resourceGroupName und serviceConnectionName. Löschen Sie die Parameter environmentType und deploymentDefaultLocation nicht.

    parameters:
    - name: environmentType
      type: string
    - name: deploymentDefaultLocation
      type: string
      default: westus3
    
  3. Aktualisieren Sie den Auftrag ValidateBicepCode, um die Variablengruppe zu importieren:

    - ${{ 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. Aktualisieren Sie den Auftrag ValidateBicepCode so, dass der Dienstverbindungsname basierend auf dem Wert des Parameters environmentType automatisch abgeleitet wird:

    - ${{ 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. Aktualisieren Sie den Auftrag ValidateBicepCode, um die importierte Variablengruppe zum Festlegen des Ressourcengruppennamens und der Umgebungstypargumente für die Bereitstellungsaufgabe zu verwenden:

    - ${{ 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. Nehmen Sie die Änderungen am Auftrag PreviewAzureChanges vor:

    - ${{ 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. Nehmen Sie die gleichen Änderungen am Bereitstellungsauftrag Deploy vor:

    - 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. Vergewissern Sie sich, dass die Datei deploy.yml jetzt wie der folgende Code aussieht:

    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. Speichern Sie die geänderte Datei.

Aktualisieren der Pipelinedefinition, um die Parameterliste zu vereinfachen

  1. Öffnen Sie die Datei azure-pipelines.yml.

  2. Aktualisieren Sie die Phasen, die Vorlagen verwenden, um die Parameter resourceGroupName und serviceConnectionName zu entfernen. Belassen Sie nur den Parameter 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. Speichern Sie die geänderte Datei.

  4. Committen Sie Ihre Änderungen mithilfe der folgenden Befehle in Ihr Git-Repository, ohne sie zu pushen:

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

Update der Bicep-Datei

  1. Öffnen Sie die Datei main.bicep.

  2. Fügen Sie unter den Parametern, die sich bereits in der Datei befinden, die folgenden Parameter für die neue Überprüfungs-API hinzu:

    @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. Aktualisieren Sie die Ressourcendefinition appServiceApp, um die URL und den Schlüssel der Überprüfungs-API für die Anwendung zur Verfügung zu stellen, damit sie vom Code Ihrer Website verwendet werden können:

    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. Speichern Sie die geänderte Datei.

Aktualisieren der Variablengruppen

  1. Wechseln Sie in Ihrem Browser zu Pipelines>Bibliothek, und öffnen Sie die ToyWebsiteTest-Variablengruppen.

  2. Fügen Sie die folgenden Variablen hinzu:

    Name Wert
    ReviewApiKey sandboxsecretkey
    ReviewApiUrl https://sandbox.contoso.com/reviews
  3. Wählen Sie das Vorhängeschlosssymbol neben der Variablen ReviewApiKey aus. Dieser Schritt weist Azure Pipelines an, den Wert der Variablen sicher zu behandeln.

    Screenshot: Testvariablengruppe und Schaltfläche „Geheime Variable“

  4. Speichern Sie die Variablengruppe.

    Screenshot: Testvariablengruppe mit aktualisierten Variablen

  5. Aktualisieren Sie die ToyWebsiteProduction-Variablengruppe, um einen ähnlichen Variablensatz hinzuzufügen:

    Name Wert
    ReviewApiKey productionsecretkey
    ReviewApiUrl https://api.contoso.com/reviews

    Denken Sie daran, das Vorhängeschlosssymbol neben der Variablen ReviewApiKey auszuwählen.

    Screenshot: Produktionsvariablengruppe mit aktualisierten Variablen

  6. Speichern Sie die Variablengruppe.

Hinzufügen der Überprüfungs-API-Variablen zu den Variablengruppen

  1. Öffnen Sie in Visual Studio Code die Datei deploy.yml.

  2. Fügen Sie im Auftrag ValidateBicepCode die Parameterwerte der Überprüfungs-API zur Bereitstellungsaufgabe hinzu:

    - ${{ 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. Nehmen Sie die gleiche Änderung am Auftrag PreviewAzureChanges vor:

    - ${{ 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)
    

    Wichtig

    Achten Sie darauf, den umgekehrten Schrägstrich (\) am Ende der Zeile, die den environmentType-Parameterwert festlegt, und in der nachfolgenden Zeile hinzuzufügen. Das Zeichen \ gibt an, dass weitere Zeilen Teil desselben Azure CLI-Befehls sind.

  4. Nehmen Sie die gleiche Änderung am Auftrag Deploy vor:

    - 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. Vergewissern Sie sich, dass die Datei deploy.yml jetzt wie der folgende Code aussieht:

    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. Committen und pushen Sie die Änderungen mithilfe der folgenden Befehle in Ihr Git-Repository:

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

Überprüfen der Bereitstellungsergebnisse

  1. Wechseln Sie in Ihrem Browser zu Pipelines.

  2. Wählen Sie die letzte Ausführung Ihrer Pipeline aus.

    Warten Sie, bis die Pipeline vor der Phase Bereitstellen (Produktionsumgebung) angehalten wurde. Es kann einige Minuten dauern, bis die Pipeline diesen Punkt erreicht hat.

  3. Wenn Sie aufgefordert werden, die Berechtigung zum Zugriff auf eine Ressource zu erteilen, wählen Sie Ansicht und dann Zulassen aus.

  4. Genehmigen Sie die Bereitstellung in der Produktionsumgebung, indem Sie Überprüfen>Genehmigen auswählen.

    Warten Sie, bis die Ausführung der Pipeline abgeschlossen ist.

  5. Wählen Sie Pipelines>Umgebungen aus.

  6. Wählen Sie die Umgebung Produktion aus.

    Beachten Sie, dass nun mehrere Bereitstellungen im Verlauf der Umgebung zu sehen sind.

  7. Navigieren Sie in Ihrem Browser zum Azure-Portal.

  8. Wechseln Sie zur Ressourcengruppe ToyWebsiteProduction.

  9. Öffnen Sie in der Liste der Ressourcen die Azure App Service-App.

    Wählen Sie Konfiguration aus.

    Screenshot: Azure-Portal mit der App Service-App und dem Menüelement „Konfiguration“

  10. Wählen Sie Werte anzeigen aus.

    Screenshot: Azure-Portal mit den App Service-App-Einstellungen und der Schaltfläche für die Anzeige von Werten

  11. Beachten Sie, dass die Werte der Produktionswebsite für die Einstellungen ReviewApiKey und ReviewApiUrl auf die Werte festgelegt sind, die Sie in der Produktionsvariablengruppe konfiguriert haben.

    Screenshot: Azure-Portal mit den App Service-App-Einstellungen und den Konfigurationseinstellungen

  12. Vergleichen Sie die aktuellen Werte mit den Konfigurationseinstellungen für die App Service-App in der Ressourcengruppe ToyWebsiteTest. Beachten Sie, dass die Werte sich unterscheiden.

Bereinigen der Ressourcen

Nachdem Sie die Übung abgeschlossen haben, können Sie die Ressourcen entfernen, damit Ihnen dafür keine Gebühren berechnet werden.

Führen Sie im Visual Studio Code-Terminal die folgenden Befehle aus:

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

Die Ressourcengruppe wird im Hintergrund gelöscht.

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