Latihan - Siapkan lingkungan Anda
Penting
Anda memerlukan langganan Azure Anda sendiri untuk menjalankan latihan ini, dan Anda mungkin dikenakan biaya. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
Sebelum menyiapkan alur kerja permintaan pull perusahaan mainan, Anda perlu mengonfigurasi lingkungan Anda.
Di pelajaran ini, Anda memastikan bahwa lingkungan Azure dan GitHub telah disiapkan sehingga Anda dapat menyelesaikan sisa modul ini dengan sukses.
Untuk memenuhi tujuan ini, Anda akan:
- Siapkan repositori GitHub untuk modul ini.
- Kloning repositori ke komputer Anda.
- Buat identitas beban kerja di ID Microsoft Entra.
- Buatlah rahasia di GitHub.
Mendapatkan repositori GitHub
Di bagian ini, Anda menyiapkan repositori GitHub untuk menyelesaikan sisa modul ini dengan membuat repositori baru berdasarkan repositori templat. Repositori template berisi file yang Anda butuhkan untuk memulai modul ini.
Modul-modul dalam jalur pembelajaran ini merupakan bagian dari sebuah progresi. Untuk tujuan pembelajaran, setiap modul memiliki repositori templat GitHub terkait.
Tip
Bahkan jika Anda telah menyelesaikan modul sebelumnya di jalur pembelajaran, ikuti instruksi ini untuk membuat repositori baru dan beri repositori nama baru.
Mulai dari repositori templat
Jalankan templat yang menyiapkan repositori GitHub Anda.
Di situs GitHub, buat repositori dari templat dengan melakukan langkah-langkah berikut:
Pilih Gunakan templat>ini Buat repositori baru.
Mencatat nama dari nama pengguna atau organisasi GitHub Anda. Dalam contoh, nama pengguna GitHub adalah mygithubuser. Anda akan membutuhkan nama ini segera.
Masukkan nama untuk proyek baru Anda, seperti toy-website-review.
Pilih opsi Publik.
Saat membuat repositori Anda sendiri, Anda mungkin ingin menjadikannya privat. Dalam modul ini, Anda akan bekerja dengan beberapa fitur GitHub yang hanya berfungsi dengan repositori publik dan akun GitHub Enterprise.
Pilih Buat repositori.
Mengklon repositori
Anda sekarang memiliki salinan repositori templat di akun Anda sendiri. Klon repositori ini secara lokal sehingga Anda dapat mulai bekerja di dalamnya.
Pilih Kode, lalu pilih ikon salin.
Buka Visual Studio Code.
Buka jendela terminal Visual Studio Code dengan memilih Terminal>Terminal Baru. Jendela ini biasanya terbuka di bagian bawah layar.
Di terminal, buka direktori tempat Anda ingin mengklon repositori GitHub di komputer lokal. Misalnya, untuk mengklon repositori ke folder toy-website-review, jalankan perintah berikut:
cd toy-website-auto-review
Ketik
git clone
lalu tempel URL yang Anda salin sebelumnya, yang terlihat seperti ini:git clone https://github.com/mygithubuser/toy-website-auto-review.git
Buka kembali Visual Studio Code di folder repositori dengan menjalankan perintah berikut di terminal Visual Studio Code:
code -r toy-website-auto-review
Masuk ke Azure
Setelah mengkloning repositori secara lokal ke komputer, Anda akan masuk ke lingkungan Azure Anda. Anda akan menggunakan akun Azure Anda untuk membuat identitas beban kerja untuk alur kerja Tindakan GitHub Anda untuk digunakan.
Di terminal Visual Studio Code, jalankan perintah berikut untuk masuk ke Azure:
az login
Masuk ke akun Azure Anda melalui browser yang terbuka.
Pada terminal Visual Studio Code, masuk ke Azure dengan menjalankan perintah berikut:
Connect-AzAccount
Masuk ke akun Azure Anda melalui browser yang terbuka.
Membuat identitas beban kerja
Nantinya di modul Microsoft Learn ini, alur kerja permintaan pull Anda akan membuat grup sumber daya dan sumber daya dalam langganan Anda. Untuk menyebarkan sumber daya, Anda perlu membuat identitas beban kerja dan memberinya peran Kontributor pada langganan Anda.
Peringatan
Identitas beban kerja yang Anda buat di sini memiliki akses tingkat tinggi ke langganan Azure Anda. Untuk menghindari masalah yang tidak disengaja, gunakan langganan nonproduksi. Jangan jalankan langkah-langkah ini di lingkungan yang memiliki beban kerja produksi Anda.
Dalam alur kerja validasi permintaan pull Anda sendiri, sebaiknya Anda menggunakan langganan Azure khusus.
Untuk membuat identitas beban kerja, perintah Azure CLI digunakan jq
untuk mengurai data dari output JSON. Jika belum jq
menginstal, Anda dapat menggunakan Bash di Azure Cloud Shell untuk membuat identitas beban kerja, grup sumber daya, dan penetapan peran, dan menyiapkan rahasia GitHub.
Jalankan kode berikut untuk menentukan variabel untuk nama pengguna GitHub dan nama repositori Anda. Pastikan Anda mengganti
mygithubuser
dengan nama pengguna GitHub Anda, yang Anda catat sebelumnya dalam latihan ini. Pastikan juga Anda menentukan nama repositori GitHub yang benar.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-auto-review'
Buat identitas beban kerja untuk alur kerja penyebaran Anda.
applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-auto-review') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-auto-review\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:pull_request\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Jalankan kode berikut untuk menentukan variabel untuk nama pengguna GitHub dan nama repositori Anda. Pastikan Anda mengganti
mygithubuser
dengan nama pengguna GitHub Anda, yang Anda catat sebelumnya dalam latihan ini. Pastikan juga Anda menentukan nama repositori GitHub yang benar.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-auto-review'
Buat identitas beban kerja untuk alur kerja penyebaran Anda.
$applicationRegistration = New-AzADApplication -DisplayName 'toy-website-auto-review' New-AzADAppFederatedCredential ` -Name 'toy-website-auto-review' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):pull_request"
Berikan akses identitas beban kerja ke langganan Anda
Selanjutnya, buat grup sumber daya untuk situs web Anda. Proses ini juga memberikan identitas beban kerja peran Kontributor pada grup sumber daya, yang memungkinkan alur kerja Anda untuk disebarkan ke grup sumber daya.
Jalankan perintah Azure CLI berikut di terminal Visual Studio Code:
az ad sp create --id $applicationRegistrationObjectId az role assignment create \ --assignee $applicationRegistrationAppId \ --role Contributor
Jalankan perintah Azure PowerShell berikut di terminal Visual Studio Code:
New-AzADServicePrincipal -AppId $applicationRegistration.AppId New-AzRoleAssignment ` -ApplicationId $applicationRegistration.AppId ` -RoleDefinitionName Contributor
Siapkan rahasia GitHub
Jalankan kode berikut untuk menunjukkan nilai yang perlu Anda buat sebagai rahasia GitHub:
echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Catat nilai ID aplikasi Anda untuk AZURE_CLIENT_ID. Anda dapat menggunakan nilai tersebut saat membersihkan sumber daya setelah selesai dengan modul ini.
Membuat rahasia GitHub
Anda telah membuat identitas beban kerja, dan memberinya izin untuk disebarkan ke langganan. Selanjutnya, buat rahasia di Tindakan GitHub.
Di browser Anda, navigasikan ke repositori GitHub Anda.
Pilih Pengaturan>Tindakan Rahasia dan variabel.>
Pilih Rahasia repositori baru.
Beri nama rahasia AZURE_CLIENT_ID.
Di bidang Nilai, tempel GUID dari baris pertama keluaran terminal. Jangan sertakan
AZURE_CLIENT_ID
, titik dua, atau spasi apa pun dalam nilai.Pilih Tambahkan rahasia.
Ulangi proses untuk membuat rahasia untuk AZURE_TENANT_ID dan AZURE_SUBSCRIPTION_ID, menyalin nilai dari bidang yang sesuai di keluaran terminal.
Verifikasi bahwa daftar rahasia Anda sekarang menunjukkan ketiga rahasia tersebut.