Latihan - Otorisasi perwakilan layanan Anda untuk penyebaran
Pada latihan sebelumnya, Anda membuat perwakilan layanan untuk alur penyebaran situs web Anda, dan Anda menguji bahwa Anda dapat masuk menggunakan kuncinya. Sekarang Anda siap untuk memberikan akses perwakilan layanan ke lingkungan Azure Anda. Dalam latihan ini, Anda akan membuat penetapan peran untuk perwakilan layanan, lalu menyebarkan file Bicep menggunakan perwakilan layanan.
Selama proses tersebut, Anda akan:
- Masuk sebagai akun pengguna Anda sendiri.
- Membuat grup sumber daya untuk situs web perusahaan Anda.
- Membuat penetapan peran untuk mengizinkan perwakilan layanan menyebarkan sumber daya ke grup sumber daya.
- Masuk sebagai perwakilan layanan dan menyebarkan file Bicep yang membuat sumber daya situs web perusahaan Anda.
- Verifikasi penyebaran.
- Membersihkan grup sumber daya dan perwakilan layanan.
Masuk sebagai akun pengguna Anda
Pada latihan sebelumnya, Anda masuk menggunakan perwakilan layanan lalu keluar. Anda harus masuk kembali sebagai akun pengguna Anda sendiri sehingga Anda dapat mengikuti langkah selanjutnya dalam latihan ini.
Di terminal Azure Cloud Shell (bash) Visual Studio Code, masuk ke Azure dengan menjalankan perintah berikut:
az login
Masuk ke akun Azure Anda melalui browser yang terbuka.
Di terminal Azure Cloud Shell (PowerShell) Visual Studio Code, masuk ke Azure dengan menjalankan perintah berikut:
Connect-AzAccount
Masuk ke akun Azure Anda melalui browser yang terbuka.
Buat grup sumber daya
Sekarang Anda akan membuat grup sumber daya untuk memuat sumber daya situs web perusahaan mainan.
Jalankan perintah Azure CLI ini di terminal Visual Studio Code untuk membuat grup sumber daya:
az group create --name ToyWebsite --location eastus
Lihatlah output JSON dari perintah sebelumnya. Ini termasuk properti bernama
id
, yang merupakan ID grup sumber daya. Salin ini di tempat yang aman. Anda akan menggunakannya segera.
Jalankan perintah Azure PowerShell ini di terminal Visual Studio Code untuk membuat grup sumber daya:
New-AzResourceGroup -Name ToyWebsite -Location eastus
Lihatlah output dari perintah sebelumnya. Ini termasuk properti bernama
ResourceId
, yang merupakan ID grup sumber daya. Salin ini di tempat yang aman. Anda akan menggunakannya segera.
Membuat penetapan peran
Untuk alur penyebaran situs web Anda, Anda memutuskan untuk membuat penetapan peran dengan detail berikut:
- Penerima tugas: Perwakilan layanan yang Anda buat di latihan sebelumnya.
- Peran: Kontributor peran bawaan.
- Cakupan: Grup sumber daya yang Anda buat di langkah sebelumnya.
Jalankan perintah Azure CLI berikut di terminal Visual Studio Code untuk membuat penetapan peran. Ganti tempat penampung dengan nilai yang Anda salin sebelumnya.
az role assignment create \
--assignee APPLICATION_ID \
--role Contributor \
--scope RESOURCE_GROUP_ID \
--description "The deployment pipeline for the company's website needs to be able to create resources within the resource group."
Jalankan perintah Azure CLI berikut di terminal Visual Studio Code untuk membuat penetapan peran. Ganti tempat penampung dengan nilai yang Anda salin sebelumnya.
New-AzRoleAssignment `
-ApplicationId APPLICATION_ID `
-RoleDefinitionName Contributor `
-Scope RESOURCE_GROUP_ID `
-Description "The deployment pipeline for the company's website needs to be able to create resources within the resource group."
Membuat file Bicep
Anda sebelumnya membuat file Bicep yang menyebarkan sumber daya situs web Anda. Di sini, Anda menyimpan file ini sehingga Anda dapat mengujinya menggunakan perwakilan layanan.
Buat file baru yang disebut main.bicep.
Tambahkan konten berikut ke file main.bicep. Anda akan segera menyebarkan templat.
@description('The Azure region into which the resources should be deployed.') param location string = resourceGroup().location @description('The name of the App Service app.') param appServiceAppName string = 'toywebsite${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-website-plan' var applicationInsightsInstanceName = 'toy-website-insights' resource appServicePlan 'Microsoft.Web/serverFarms@2020-06-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSkuName } } resource applicationInsightsInstance 'Microsoft.Insights/components@2018-05-01-preview' = { name: applicationInsightsInstanceName location: location kind: 'web' properties: { Application_Type: 'web' } } resource appServiceApp 'Microsoft.Web/sites@2020-06-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' value: applicationInsightsInstance.properties.InstrumentationKey } { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' value: applicationInsightsInstance.properties.ConnectionString } ] } } }
Simpan perubahan pada file. Anda dapat memilih File>Simpan Sebagai atau pilih Ctrl+S untuk Windows (⌘+S untuk macOS). Pastikan Anda mengingat di mana Anda menyimpan file tersebut. Misalnya, Anda mungkin ingin membuat folder skrip untuk menyimpan file-nya.
Menyebarkan file Bicep menggunakan perwakilan layanan
Saat ini Anda tidak memiliki alur penyebaran, jadi Anda akan menyimulasikan apa yang dilakukan alur untuk menyebarkan file Bicep Anda.
Jalankan perintah Azure CLI berikut di terminal Visual Studio Code untuk masuk menggunakan info masuk perwakilan layanan. Ganti tempat penampung dengan nilai yang Anda salin di latihan sebelumnya.
az login --service-principal \ --username APPLICATION_ID \ --password SERVICE_PRINCIPAL_KEY \ --tenant TENANT_ID
Sebarkan file Bicep dengan menjalankan perintah Azure CLI berikut:
az deployment group create \ --resource-group ToyWebsite \ --template-file main.bicep
Penyebaran mungkin memerlukan satu atau dua menit untuk selesai, lalu Anda akan melihat penyebaran yang berhasil.
Jalankan perintah Azure PowerShell berikut di terminal Visual Studio Code untuk meminta info masuk perwakilan layanan dengan aman. Gunakan kunci dan ID aplikasi perwakilan layanan dari latihan sebelumnya untuk masing-masing nama pengguna dan kata sandi.
$credential = Get-Credential
Jalankan perintah Azure PowerShell berikut di terminal Visual Studio Code untuk masuk menggunakan info masuk perwakilan layanan. Ganti tempat penampung
TENANT_ID
dengan nilai yang Anda salin sebelumnya.Connect-AzAccount -ServicePrincipal ` -Credential $credential ` -Tenant TENANT_ID
Sebarkan file Bicep dengan menjalankan perintah Azure PowerShell berikut:
New-AzResourceGroupDeployment -ResourceGroupName ToyWebsite -TemplateFile main.bicep
Penyebaran mungkin memerlukan satu atau dua menit untuk selesai, lalu Anda akan melihat penyebaran yang berhasil.
Verifikasi penyebaran
Gunakan portal Azure untuk memeriksa sumber daya yang Anda sebarkan dan untuk memeriksa hasil penyebaran.
Buka portal Microsoft Azure.
Di panel kiri, pilih Grup sumber daya.
Pilih ToyWebsite.
Pilih Penyebaran untuk melihat penyebaran yang berhasil.
Anda mungkin juga melihat penyebaran bernama Failure-Anomalies-Alert-Rule-Deployment. Application Insights membuat penyebaran ini secara otomatis.
Pilih penyebaran utama untuk melihat sumber daya apa yang disebarkan, lalu perluas Detail penyebaran.
Dalam kasus ini, paket App Service, aplikasi, dan instans Application Insights akan dicantumkan.
Perhatikan bahwa tidak ada yang aneh tentang penyebaran ini. Meskipun perwakilan layanan memulainya, hal tersebut sama seperti penyebaran Bicep lainnya.
Membersihkan grup sumber daya dan perwakilan layanan
Anda telah berhasil membuat perwakilan layanan dan penetapan peran, dan Anda telah menyebarkan sumber daya situs web Anda menggunakan file Bicep. Sekarang Anda dapat menghapus sumber daya yang Anda buat.
Keluar dari akun perwakilan layanan menggunakan perintah berikut:
az logout
Masuk kembali ke Azure dengan akun pengguna Anda sendiri dengan menjalankan perintah berikut:
az login
Masuk ke akun Azure Anda melalui browser yang terbuka.
Jalankan perintah Azure CLI berikut untuk menghapus grup sumber daya, kontennya, dan penetapan peran:
az group delete --name ToyWebsite
Saat Anda diminta untuk mengonfirmasi, masukkan
y
.Jalankan perintah berikut untuk menghapus perwakilan layanan. Ganti tempat penampung
APPLICATION_ID
dengan ID aplikasi yang Anda salin di latihan sebelumnya:az ad sp delete --id APPLICATION_ID
Keluar dari akun perwakilan layanan menggunakan perintah berikut:
Logout-AzAccount
Masuk kembali ke Azure dengan akun pengguna Anda sendiri dengan menjalankan perintah berikut:
Connect-AzAccount
Masuk ke akun Azure Anda melalui browser yang terbuka.
Jalankan perintah Azure PowerShell berikut untuk menghapus grup sumber daya, kontennya, dan penetapan peran:
Remove-AzResourceGroup -Name ToyWebsite
Saat Anda diminta untuk mengonfirmasi, masukkan
y
.Jalankan perintah berikut untuk menghapus perwakilan layanan. Ganti tempat penampung
APPLICATION_ID
dengan ID aplikasi yang Anda salin di latihan sebelumnya:Remove-AzADServicePrincipal -ApplicationId APPLICATION_ID
Saat Anda diminta untuk mengonfirmasi, masukkan
y
.