Latihan - Menerbitkan spesifikasi templat

Selesai

Tim Anda telah membangun beberapa file Bicep yang diperkuat keamanan yang sesuai dengan model tata kelola baru perusahaan Anda. Salah satu file Bicep yang diperkeras menyebarkan aplikasi Azure App Service berbasis Linux. Dalam latihan ini, Anda akan menggunakan alur kerja penyebaran untuk menerbitkan file Bicep sebagai spesifikasi templat.

Selama proses tersebut, Anda akan:

  • Menambahkan pekerjaan lint ke alur kerja Anda.
  • Tambahkan pekerjaan alur kerja untuk menerbitkan spesifikasi templat.
  • Jalankan alur kerja secara manual dan verifikasi bahwa alur kerja berhasil diselesaikan.
  • Periksa spesifikasi templat yang diterbitkan di Azure.

Menambahkan pekerjaan lint ke alur kerja Anda

Repositori Anda berisi draf alur kerja yang bisa Anda gunakan sebagai titik awal.

  1. Di Visual Studio Code, perluas folder .github/workflows di akar repositori.

  2. Buka file template-spec-linux-app-service.yml.

    Screenshot of Visual Studio Code that shows the location of the workflow definition file.

    Definisi alur kerja mencakup dua pemicu. Dalam latihan ini, Anda tidak memodifikasi file Bicep untuk spesifikasi templat, sehingga push pemicu tidak pernah diaktifkan. Untuk mencoba alur kerja, Anda memanggilnya secara manual dengan menggunakan pemicu workflow_dispatch.

  3. Di bagian bawah file, tempat Anda melihat komentar yang mengatakan Untuk ditambahkan, tambahkan definisi kerja lint berikut:

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

    Repositori Anda memiliki file bicepconfig.json yang mengonfigurasi linter untuk menampilkan kesalahan dari pada peringatan. Setiap kegagalan selama pekerjaan lint akan menyebabkan alur kerja gagal.

    Tip

    File YAML sensitif terhadap indentasi. Baik Anda mengetik atau menempelkan kode ini, pastikan lekukan Anda benar. Kemudian dalam latihan ini, Anda akan melihat definisi alur kerja YAML lengkap sehingga dapat memverifikasi bahwa file Anda cocok.

Menambahkan pekerjaan terbitkan ke alur kerja Anda

Sekarang, Anda dapat menambahkan pekerjaan kedua untuk menerbitkan spesifikasi templat ke Azure.

  1. Tambahkan kode berikut di akhir file template-spec-linux-app-service.yml:

    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
    

    Pekerjaan ini memeriksa kode dari repositori Anda dan masuk ke Azure menggunakan rahasia GitHub yang Anda buat. Kemudian menjalankan perintah az ts create untuk menerbitkan spesifikasi templat ke Azure.

    Tip

    Untuk mempermudah hal-hal, alur kerja Anda menggunakan nomor eksekusi alur kerja sebagai nomor versi spesifikasi templat. Di unit berikutnya, Anda akan mempelajari tentang skema penerapan versi yang lebih kompleks.

  2. Simpan perubahan Anda ke file tersebut.

Memverifikasi dan melakukan definisi alur kerja Anda

  1. Verifikasi bahwa file template-spec-linux-app-service.yml Anda nampak seperti pada contoh berikut:

    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
    

    Jika tidak, perbarui agar sesuai dengan contoh ini, lalu simpan.

  2. Komit dan dorong perubahan Anda ke repositori Git Anda dengan menjalankan perintah berikut di terminal Visual Studio Code:

    git add .
    git commit -m "Add lint and publish jobs to Linux App Service template spec workflow"
    git push
    
  3. Ini adalah pertama kalinya Anda mendorong ke repositori ini, jadi Anda mungkin diminta untuk masuk.

    Pada Windows, ketik 1 untuk mengautentikasi menggunakan browser web, lalu pilih Enter.

    Di macOS, pilih Otorisasi.

  4. Jendela browser muncul. Anda mungkin perlu masuk ke GitHub lagi. Pilih Otorisasi.

Memicu alur kerja

  1. Di browser Anda, pilih tab Tindakan.

    Screenshot of GitHub that shows the Actions tab.

    Eksekusi alur kerja yang gagal sudah tercantum, tetapi Anda tidak perlu khawatir tentang alur kerja tersebut. Mereka gagal karena definisi alur kerja belum selesai saat Anda membuat repositori.

  2. Pilih alur kerja template-spec-linux-app-service, pilih tombol Jalankan alur kerja, lalu pilih Jalankan alur kerja.

    Screenshot of GitHub that shows selections for running the template spec's workflow.

    GitHub memulai menjalankan alur kerja baru. Anda mungkin perlu me-refresh jendela browser Anda untuk melihat eksekusi muncul.

  3. Pilih eksekusi terakhir dari daftar.

    Screenshot of GitHub that highlights the latest run of the template spec's workflow.

    Tunggu alur kerja selesai berjalan. Ketika ya, spesifikasi templat diterbitkan ke Azure.

  4. Perhatikan nomor eksekusi alur kerja, yaitu mungkin 2.

    Screenshot of GitHub that shows a successful workflow run and highlights the run number.

Meninjau spesifikasi templat di Azure

Anda juga dapat melihat spesifikasi templat yang diterbitkan di portal Azure.

  1. Di browser Anda, buka portal Microsoft Azure.

  2. Buka grup sumber daya ToyReusable, dan pilih spesifikasi templat linux-app-service.

    Screenshot of the Azure portal that shows the resource group, with the template spec highlighted.

  3. Periksa detail spesifikasi templat.

    Screenshot of the Azure portal that shows the template spec details.

    Perhatikan bahwa Versi terbaru dan Nomor versi sama dengan nomor eksekusi alur kerja. Alur kerja Anda menggunakan nomor eksekusi untuk nomor versi spesifikasi templat.