Latihan - Menerbitkan spesifikasi templat
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.
Di Visual Studio Code, perluas folder .github/workflows di akar repositori.
Buka file template-spec-linux-app-service.yml.
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 pemicuworkflow_dispatch
.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.
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.
Simpan perubahan Anda ke file tersebut.
Memverifikasi dan melakukan definisi alur kerja Anda
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.
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
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.
Jendela browser muncul. Anda mungkin perlu masuk ke GitHub lagi. Pilih Otorisasi.
Memicu alur kerja
Di browser Anda, pilih tab Tindakan.
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.
Pilih alur kerja template-spec-linux-app-service, pilih tombol Jalankan alur kerja, lalu pilih Jalankan alur kerja.
GitHub memulai menjalankan alur kerja baru. Anda mungkin perlu me-refresh jendela browser Anda untuk melihat eksekusi muncul.
Pilih eksekusi terakhir dari daftar.
Tunggu alur kerja selesai berjalan. Ketika ya, spesifikasi templat diterbitkan ke Azure.
Perhatikan nomor eksekusi alur kerja, yaitu mungkin 2.
Meninjau spesifikasi templat di Azure
Anda juga dapat melihat spesifikasi templat yang diterbitkan di portal Azure.
Di browser Anda, buka portal Microsoft Azure.
Buka grup sumber daya ToyReusable, dan pilih spesifikasi templat linux-app-service.
Periksa detail spesifikasi templat.
Perhatikan bahwa Versi terbaru dan Nomor versi sama dengan nomor eksekusi alur kerja. Alur kerja Anda menggunakan nomor eksekusi untuk nomor versi spesifikasi templat.