Oefening: een voorbeeldtaak toevoegen aan uw werkstroom
U wilt een extra taak toevoegen aan uw werkstroom, zodat u kunt controleren welke wijzigingen worden aangebracht in uw Azure-omgeving.
Tijdens het proces voert u de volgende taken uit:
- Werk het YAML-bestand van de werkstroomdefinitie bij om een nieuwe preview-taak toe te voegen.
- Voeg een omgeving toe aan uw GitHub-opslagplaats.
- Configureer de omgeving om een beoordeling te vereisen.
- Werk het YAML-werkstroombestand bij om de omgeving voor de implementatietaak te gebruiken.
- Bekijk de wat-als-resultaten en keur een werkstroomuitvoering goed.
De werkstroomdefinitie bijwerken om een preview-taak toe te voegen
Hier voegt u een nieuwe taak toe aan uw werkstroom waarmee de wat-als-bewerking wordt uitgevoerd.
Open in Visual Studio Code het bestand workflow.yml in de map .github/workflows .
Voeg tussen de validatie- en implementatietaken de volgende definitie toe voor de preview-taak:
preview: runs-on: ubuntu-latest needs: [lint, validate] steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Run what-if with: failOnStdErr: false resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: deploy/main.bicep parameters: > environmentType=${{ env.ENVIRONMENT_TYPE }} additionalArguments: --what-if
U ziet dat de preview-taak afhankelijk is van de geslaagde voltooiing van het lint en het valideren van taken.
Werk de implementatietaak bij zodat deze afhankelijk is van de preview-taak :
deploy: runs-on: ubuntu-latest needs: preview steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Deploy website with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
Sla de wijzigingen in het bestand op.
Een omgeving toevoegen
Ga in uw browser naar Instellingenomgevingen>.
Selecteer Nieuwe omgeving.
Voer website in als de omgevingsnaam.
Selecteer Omgeving configureren.
In de installatiestappen voor deze module hebt u al een federatieve referentie gemaakt voor uw werkstroom die moet worden gebruikt wanneer deze in de omgeving wordt geïmplementeerd.
Vereiste revisorbeveiligingsregel toevoegen aan de omgeving
Selecteer het vak Vereiste revisoren .
Voeg uw eigen GitHub-gebruikersnaam toe aan de lijst met revisoren.
Selecteer Beveiligingsregels opslaan.
Selecteer Omgevingen om de configuratie af te sluiten.
Werkstroomdefinitie bij om een omgeving en revisor te vereisen
Hier configureert u de implementatietaak die moet worden uitgevoerd op basis van de websiteomgeving die u eerder hebt gemaakt.
Open het bestand workflow.yml in Visual Studio Code.
Voeg de
environment
parameter toe aan de implementatietaak . Stel de waarde in opWebsite
, zodat deze overeenkomt met de naam van de omgeving die u hebt gemaakt:deploy: runs-on: ubuntu-latest environment: Website needs: preview steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Deploy website with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
Sla het bestand op.
Uw werkstroomdefinitie controleren en doorvoeren
Controleer of uw workflow.yml-bestand eruitziet als de volgende code:
name: deploy-toy-website-test concurrency: toy-company on: push: branches: - main permissions: id-token: write contents: read env: AZURE_RESOURCEGROUP_NAME: ToyWebsiteTest ENVIRONMENT_TYPE: Test jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Bicep linter run: az bicep build --file deploy/main.bicep validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Run preflight validation with: deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT_TYPE }} deploymentMode: Validate preview: runs-on: ubuntu-latest needs: [lint, validate] steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Run what-if with: failOnStdErr: false resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: deploy/main.bicep parameters: > environmentType=${{ env.ENVIRONMENT_TYPE }} additionalArguments: --what-if deploy: runs-on: ubuntu-latest environment: Website needs: preview steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: azure/arm-deploy@v1 name: Deploy website with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }} template: ./deploy/main.bicep parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
Als uw bestand er anders uitziet, werkt u het bij zodat het overeenkomt met dit voorbeeld en slaat u het op.
Voer uw wijzigingen door en push deze naar uw Git-opslagplaats door de volgende opdrachten uit te voeren in de Visual Studio Code-terminal:
git add . git commit -m "Add preview job" git push
Voer de werkstroom uit en controleer de wat-als-uitvoer
Ga in uw browser naar de werkstroomuitvoeringen.
Selecteer de meest recente uitvoering van uw werkstroom.
Wacht totdat de werkstroom de lint-, validatie- en preview-taken heeft voltooid. Hoewel GitHub de pagina automatisch bijwerken met de meest recente status, is het een goed idee om uw pagina af en toe te vernieuwen.
U ziet dat de werkstroom u vraagt om een beoordeling. Afhankelijk van hoe u uw GitHub-account instelt, ontvangt u een e-mail- of webmelding met een aanvraag om de werkstroom te controleren.
Voordat u de voortzetting van de werkstroom goedkeurt, bekijkt u de wat-als-resultaten om ervoor te zorgen dat deze voldoen aan uw verwachtingen.
Selecteer de preview-taak .
Selecteer de wat-als-stap uitvoeren om de wijzigingen te controleren waarop de wat-als-opdracht rapporteert.
U ziet dat het werkstroomlogboek wat-als-resultaten bevat die vergelijkbaar zijn met de volgende code:
Resource and property changes are indicated with these symbols: - Delete + Create ~ Modify = Nochange * Ignore The deployment will update the following scope: Scope: /subscriptions/***/resourceGroups/ToyWebsiteTest ~ Microsoft.OperationalInsights/workspaces/workspace-abcdefghijklm [2022-10-01] - properties.retentionInDays: 30 - properties.sku: name: "pergb2018" - properties.workspaceCapping: dailyQuotaGb: -1.0 ~ Microsoft.Web/sites/toy-website-abcdefghijklm [2022-03-01] + properties.siteConfig.localMySqlEnabled: false + properties.siteConfig.netFrameworkVersion: "v4.6" = Microsoft.Insights/components/toywebsite [2020-02-02] = Microsoft.Storage/storageAccounts/mystorageabcdefghijklm [2022-09-01] = Microsoft.Web/serverfarms/toy-website [2022-03-01] * microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite Resource changes: 2 to modify, 3 no change, 1 to ignore.
De wat-als-bewerking heeft een wijziging gedetecteerd in de Log Analytics-werkruimte en -websitebronnen. De gedetecteerde wijzigingen zijn echter ruis. Ze vertegenwoordigen geen echte wijzigingen in uw resource. Na verloop van tijd werkt het Azure-team om ruis te verminderen. Ondertussen kunt u de gedetecteerde wijzigingen negeren.
Mogelijk ziet u ook een item in de wat-als-uitvoer voor het resourcetype
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
. Dit is een resource die automatisch door Application Insights wordt gemaakt. Met de wat-als-opdracht wordt gedetecteerd dat er geen wijzigingen in de resource worden aangebracht.
De werkstroomuitvoering goedkeuren
Selecteer het overzicht om terug te keren naar het overzicht voor de uitvoering van de werkstroom.
Selecteer de knop Implementaties controleren in het beoordelingsvenster .
Selecteer in het pop-upvenster Controleren in behandeling zijnde implementaties de websiteomgeving . Voer in het vak Een opmerking achterlaten de wat-als-resultaten gecontroleerd in.
Selecteer Goedkeuren en implementeren.
De geslaagde implementatie observeren
Nadat u de werkstroomuitvoering hebt goedgekeurd, ziet u dat de implementatietaak wordt uitgevoerd.
Wacht tot de taak is voltooid.
U ziet dat de uitvoering van de werkstroom is voltooid.