Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memulai Tindakan GitHub dengan menggunakan alur kerja untuk menempatkan situs statik ke akun penyimpanan Azure. Setelah Anda menyiapkan alur kerja Tindakan GitHub, Anda akan dapat memindahkan situs ke Azure dari GitHub secara otomatis saat membuat perubahan pada kode situs Anda.
Catatan
Jika Anda menggunakan Azure Static Web Apps, maka Anda tidak perlu menyiapkan alur kerja Tindakan GitHub secara manual. Azure Static Web Apps membuat alur kerja Tindakan GitHub secara otomatis untuk Anda.
Prasyarat
Langganan Azure dan akun GitHub.
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Repositori GitHub dengan kode situs web statik Anda. Jika Anda tidak memiliki akun GitHub, daftar gratis.
- Situs web statik yang berfungsi dihosting di Azure Storage. Pelajari cara Menghosting situs web statik di Azure Storage. Untuk mengikuti contoh ini, Anda juga harus menerapkan Azure CDN.
Catatan
Merupakan hal yang umum untuk menggunakan jaringan pengiriman konten (CDN) untuk mengurangi latensi bagi pengguna Anda di seluruh dunia dan untuk mengurangi jumlah transaksi ke akun penyimpanan Anda. Memindahkan konten statik ke layanan penyimpanan berbasis cloud dapat mengurangi kebutuhan instans komputasi yang berpotensi mahal. Untuk informasi selengkapnya, lihat Pola Hosting Konten Statik.
Membuat kredensial penyebaran
Untuk menggunakan tindakan Azure Login dengan OIDC, Anda perlu mengonfigurasi kredensial identitas gabungan pada aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna.
Opsi 1: Aplikasi Microsoft Entra
- Buat aplikasi Microsoft Entra dengan principal layanan menggunakan portal Azure, Azure CLI, atau Azure PowerShell.
- Salin nilai untuk ID Klien, ID Langganan, dan ID Direktori (penyewa) untuk digunakan nanti di alur kerja GitHub Actions Anda.
- Tetapkan peran yang sesuai untuk perwakilan layanan Anda dengan portal Azure, Azure CLI, atau Azure PowerShell.
- Konfigurasikan kredensial identitas gabungan pada aplikasi Microsoft Entra untuk mempercayai token yang dikeluarkan oleh GitHub Actions ke repositori GitHub Anda.
Opsi 2: Identitas terkelola yang ditetapkan pengguna
- Buat identitas terkelola yang ditetapkan pengguna.
- Salin nilai untuk ID Klien, ID Langganan, dan ID Direktori (penyewa) untuk digunakan nanti di alur kerja GitHub Actions Anda.
- Tetapkan peran yang sesuai ke identitas terkelola yang ditetapkan pengguna Anda.
- Konfigurasikan kredensial identitas federasi pada identitas terkelola yang ditetapkan pengguna untuk mempercayai token yang dikeluarkan oleh GitHub Actions ke repositori GitHub Anda.
Mengonfigurasi rahasia GitHub
Anda perlu memberikan ID Klien, ID Direktori (penyewa), dan ID Langganan aplikasi Anda ke tindakan masuk. Nilai ini bisa disediakan secara langsung di alur kerja atau bisa disimpan di rahasia GitHub dan direferensikan dalam alur kerja Anda. Menyimpan nilai sebagai GitHub rahasia adalah opsi yang lebih aman.
Di GitHub, buka repositori Anda.
Pilih Rahasia Keamanan dan variabel > Tindakan.
Pilih Rahasia repositori baru.
Catatan
Untuk meningkatkan keamanan alur kerja di repositori publik, gunakan rahasia lingkungan alih-alih rahasia repositori. Jika lingkungan memerlukan persetujuan, pekerjaan tidak dapat mengakses rahasia lingkungan hingga salah satu peninjau yang diperlukan menyetujuinya.
Membuat rahasia untuk
AZURE_CLIENT_ID
,AZURE_TENANT_ID
, danAZURE_SUBSCRIPTION_ID
. Salin nilai-nilai ini dari aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna untuk rahasia GitHub Anda:Rahasia GitHub Aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna AZURE_CLIENT_ID ID klien AZURE_SUBSCRIPTION_ID ID Langganan AZURE_TENANT_ID ID (tenant) direktori Catatan
Untuk alasan keamanan, sebaiknya gunakan Rahasia GitHub daripada meneruskan nilai langsung ke alur kerja.
Menambahkan alur kerja Anda
Buka Tindakan untuk repositori GitHub Anda.
Pilih Siapkan alur kerja Anda sendiri.
Hapus semuanya setelah bagian
on:
dari file alur kerja Anda. Misalnya, alur kerja Anda yang tersisa mungkin terlihat seperti ini.name: CI with OpenID Connect on: push: branches: [ main ]
Menambahkan bagian izin.
name: CI with OpenID Connect on: push: branches: [ main ] permissions: id-token: write contents: read
Tambahkan aksi pembayaran dan masuk. Tindakan ini akan memeriksa kode situs Anda dan mengautentikasi dengan Azure dengan menggunakan rahasia GitHub yang Anda buat sebelumnya.
name: CI with OpenID Connect on: push: branches: [ main ] permissions: id-token: write contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Gunakan tindakan Azure CLI untuk mengunggah kode Anda ke penyimpanan blob dan untuk membersihkan titik akhir CDN Anda. Untuk
az storage blob upload-batch
, gantikan placeholder dengan nama akun penyimpanan Anda. Skrip akan diunggah ke kontainer$web
. Untukaz cdn endpoint purge
, ganti placeholder dengan nama profil CDN Anda, nama titik akhir CDN, dan grup sumber daya Anda. Untuk mempercepat penghapusan menyeluruh CDN, Anda dapat menambahkan opsi--no-wait
keaz cdn endpoint purge
. Untuk meningkatkan keamanan, Anda juga dapat menambahkan opsi--account-key
dengan kunci akun penyimpanan Anda.- name: Upload to blob storage uses: azure/CLI@v1 with: inlineScript: | az storage blob upload-batch --account-name <STORAGE_ACCOUNT_NAME> --auth-mode key -d '$web' -s . - name: Purge CDN endpoint uses: azure/CLI@v1 with: inlineScript: | az cdn endpoint purge --content-paths "/*" --profile-name "CDN_PROFILE_NAME" --name "CDN_ENDPOINT" --resource-group "RESOURCE_GROUP"
Selesaikan alur kerja Anda dengan menambahkan tindakan untuk keluar dari Azure. Berikut adalah alur kerja yang telah selesai. File akan muncul di folder
.github/workflows
repositori Anda.name: CI with OpenID Connect on: push: branches: [ main ] permissions: id-token: write contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Upload to blob storage uses: azure/CLI@v1 with: inlineScript: | az storage blob upload-batch --account-name <STORAGE_ACCOUNT_NAME> --auth-mode key -d '$web' -s . - name: Purge CDN endpoint uses: azure/CLI@v1 with: inlineScript: | az cdn endpoint purge --content-paths "/*" --profile-name "CDN_PROFILE_NAME" --name "CDN_ENDPOINT" --resource-group "RESOURCE_GROUP" # Azure logout - name: logout run: | az logout if: always()
Meninjau penerapan Anda
Buka Tindakan untuk repositori GitHub Anda.
Buka hasil pertama untuk melihat log terperinci dari eksekusi alur kerja Anda.
Membersihkan sumber daya
Saat situs web statik dan repositori GitHub Anda tidak lagi diperlukan, bersihkan sumber daya yang Anda terapkan dengan menghapus grup sumber daya dan repositori GitHub Anda.