Oefening: een sjabloonspecificatie publiceren
Uw team heeft enkele door beveiliging beveiligde Bicep-bestanden gebouwd die compatibel zijn met het nieuwe governancemodel van uw bedrijf. Een van de beperkte Bicep-bestanden implementeert een op Linux gebaseerde Azure-app Service-app. In deze oefening gebruikt u een implementatiewerkstroom om het Bicep-bestand als sjabloonspecificatie te publiceren.
Tijdens het proces gaat u het volgende doen:
- Voeg een linttaak toe aan de werkstroom.
- Voeg een werkstroomtaak toe om de sjabloonspecificatie te publiceren.
- Voer de werkstroom handmatig uit en controleer of deze is voltooid.
- Controleer de gepubliceerde sjabloonspecificatie in Azure.
Een linttaak toevoegen aan uw werkstroom
Uw opslagplaats bevat een concept van een werkstroom die u als uitgangspunt kunt gebruiken.
Vouw in Visual Studio Code de map .github/workflows uit in de hoofdmap van de opslagplaats.
Open het template-spec-linux-app-service.yml bestand.
De werkstroomdefinitie bevat twee triggers. In deze oefening wijzigt u het Bicep-bestand voor de sjabloonspecificatie niet, zodat de
push
trigger nooit wordt geactiveerd. Als u uw werkstroom wilt uitproberen, roept u deze handmatig aan met behulp van deworkflow_dispatch
trigger.Voeg onder aan het bestand, waar u een opmerking ziet met de tekst
# To be added
, de volgende linttaakdefinitie toe:jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Bicep linter run: az bicep build --file ${{ env.TEMPLATE_SPEC_FILE_PATH }}
Uw opslagplaats heeft een bicepconfig.json-bestand waarmee de linter wordt geconfigureerd voor het verzenden van fouten in plaats van waarschuwingen. Fouten tijdens de linttaak leiden ertoe dat de werkstroom mislukt.
Tip
YAML-bestanden zijn gevoelig voor inspringing. Controleer of de inspringing juist is, ongeacht of u deze code typt of plakt. Verderop in deze oefening ziet u de volledige YAML-werkstroomdefinitie, zodat u kunt controleren of het bestand overeenkomt.
Een publicatietaak toevoegen aan uw werkstroom
U kunt nu een tweede taak toevoegen om de sjabloonspecificatie naar Azure te publiceren.
Voeg de volgende code toe aan het einde van het template-spec-linux-app-service.yml-bestand :
publish: runs-on: ubuntu-latest needs: [ lint ] 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/cli@v1 name: Publish template spec with: inlineScript: | az ts create \ --resource-group ${{ env.AZURE_RESOURCEGROUP_NAME }} \ --name ${{ env.TEMPLATE_SPEC_NAME }} \ --version ${{ github.run_number }} \ --template-file ${{ env.TEMPLATE_SPEC_FILE_PATH }} \ --location ${{ env.AZURE_REGION }} \ --yes
Met deze taak wordt de code uit uw opslagplaats uitgecheckt en wordt u aangemeld bij Azure met behulp van de GitHub-geheimen die u hebt gemaakt. Vervolgens wordt de
az ts create
opdracht uitgevoerd om de sjabloonspecificatie naar Azure te publiceren.Tip
Om het eenvoudig te houden, gebruikt uw werkstroom het uitvoeringsnummer van de werkstroom als versienummer van de sjabloonspecificatie. In de volgende les leert u meer over een complexer versiebeheerschema.
Sla de wijzigingen in het bestand op.
Uw werkstroomdefinitie controleren en doorvoeren
Controleer of uw template-spec-linux-app-service.yml bestand eruitziet zoals in het volgende voorbeeld:
name: template-spec-linux-app-service concurrency: template-spec-linux-app-service on: workflow_dispatch: push: branches: - main paths: - 'template-specs/linux-app-service/**' permissions: id-token: write contents: read env: AZURE_RESOURCEGROUP_NAME: ToyReusable AZURE_REGION: westus3 TEMPLATE_SPEC_NAME: linux-app-service TEMPLATE_SPEC_FILE_PATH: template-specs/linux-app-service/main.bicep jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run Bicep linter run: az bicep build --file ${{ env.TEMPLATE_SPEC_FILE_PATH }} publish: runs-on: ubuntu-latest needs: [ lint ] 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/cli@v1 name: Publish template spec with: inlineScript: | az ts create \ --resource-group ${{ env.AZURE_RESOURCEGROUP_NAME }} \ --name ${{ env.TEMPLATE_SPEC_NAME }} \ --version ${{ github.run_number }} \ --template-file ${{ env.TEMPLATE_SPEC_FILE_PATH }} \ --location ${{ env.AZURE_REGION }} \ --yes
Als dit niet het probleem is, werkt u deze bij zodat deze 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 lint and publish jobs to Linux App Service template spec workflow" git push
Dit is de eerste keer dat u naar deze opslagplaats hebt gepusht, dus u wordt mogelijk gevraagd u aan te melden.
Typ in Windows 1 om te verifiëren met behulp van een webbrowser en selecteer vervolgens Enter.
Selecteer Autoriseren in macOS.
Er wordt een browservenster geopend. Mogelijk moet u zich opnieuw aanmelden bij GitHub. Selecteer Autoriseren.
De werkstroom activeren
Selecteer in uw browser het tabblad Acties .
Mislukte werkstroomuitvoeringen worden al vermeld, maar u hoeft zich er geen zorgen over te maken. De uitvoeringen zijn mislukt omdat de werkstroomdefinities nog niet zijn voltooid toen u de opslagplaats maakte.
Selecteer de werkstroom template-spec-linux-app-service, selecteer de knop Werkstroom uitvoeren en selecteer vervolgens Werkstroom uitvoeren.
GitHub start een nieuwe werkstroomuitvoering. Mogelijk moet u het browservenster vernieuwen om te zien dat de uitvoering wordt weergegeven.
Selecteer de meest recente uitvoering in de lijst.
Wacht tot de uitvoering van de werkstroom is voltooid. Wanneer dit het geval is, wordt de sjabloonspecificatie gepubliceerd naar Azure.
Let op het uitvoeringsnummer van de werkstroom. Dit is waarschijnlijk 2.
De sjabloonspecificatie in Azure controleren
U kunt ook de gepubliceerde sjabloonspecificatie bekijken in Azure Portal.
Ga in een browser naar de Azure-portal.
Ga naar de resourcegroep ToyReusable en selecteer de sjabloonspecificatie voor linux-app-service .
Bekijk de details van de sjabloonspecificatie.
U ziet dat de nieuwste versie en het versienummer hetzelfde zijn als het uitvoeringsnummer van de werkstroom. Uw werkstroom gebruikt het uitvoeringsnummer voor het versienummer van de sjabloonspecificatie.