Latihan - Mengonfigurasi, menyebarkan, dan menjalankan aplikasi di Azure

Selesai

Sekarang saatnya untuk menjalankan aplikasi Anda di Azure. Anda perlu membuat aplikasi Azure App Service, menyiapkannya dengan identitas terkelola dan konfigurasi vault Anda, dan menyebarkan kode Anda.

Membuat paket dan aplikasi App Service

Dua langkah proses membuat aplikasi App Service: Pertama buat paket, lalu aplikasi.

Nama paket hanya perlu unik dalam langganan Anda, sehingga Anda dapat menggunakan nama yang sama: keyvault-exercise-plan. Nama aplikasi harus unik secara global, jadi pilih nama Anda sendiri.

  1. Di Azure Cloud Shell, jalankan perintah berikut untuk membuat paket App Service.

    az appservice plan create \
        --name keyvault-exercise-plan \
        --sku FREE \
        --location centralus \
        --resource-group "<rgn>[sandbox resource group name]</rgn>"
    
  2. Selanjutnya, untuk membuat Aplikasi Web yang menggunakan paket App Service yang Anda buat, jalankan perintah berikut. Pastikan untuk mengganti <your-unique-app-name> dengan nama aplikasi Anda di parameter --name.

    az webapp create \
        --plan keyvault-exercise-plan \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
    az webapp create \
        --plan keyvault-exercise-plan \
        --runtime "node|16LTS" \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    

Tambahkan konfigurasi ke aplikasi

Untuk menyebarkan ke Azure, ikuti praktik terbaik App Service untuk menempatkan VaultName konfigurasi dalam pengaturan aplikasi alih-alih file konfigurasi. Untuk membuat pengaturan aplikasi, jalankan perintah ini. Pastikan untuk mengganti keduanya <your-unique-app-name> dengan nama aplikasi Anda di parameter --name, dan <your-unique-vault-name> dengan nama vault Anda di parameter --settings.

az webapp config appsettings set \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name> \
    --settings 'VaultName=<your-unique-vault-name>'

Untuk menyebarkan ke Azure, ikuti praktik terbaik App Service untuk menempatkan VaultName konfigurasi dalam pengaturan aplikasi alih-alih file konfigurasi. Anda juga mengatur SCM_DO_BUILD_DURING_DEPLOYMENT pengaturan ke true sehingga App Service memulihkan paket aplikasi Anda di server dan membuat konfigurasi yang diperlukan untuk menjalankan aplikasi. Untuk membuat pengaturan aplikasi, jalankan perintah ini. Pastikan untuk mengganti keduanya <your-unique-app-name> dengan nama aplikasi Anda di parameter --name, dan <your-unique-vault-name> dengan nama vault Anda di parameter --settings.

az webapp config appsettings set \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name> \
    --settings 'VaultName=<your-unique-vault-name>' 'SCM_DO_BUILD_DURING_DEPLOYMENT=true'

Aktifkan identitas terkelola

Mengaktifkan identitas terkelola pada aplikasi adalah satu baris. Untuk mengaktifkannya di aplikasi Anda, jalankan perintah berikut. Pastikan untuk mengganti <your-unique-app-name> dengan nama aplikasi Anda di parameter --name.

az webapp identity assign \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name>

Dari output JSON yang dihasilkan, salin nilainya principalId . PrincipalId adalah ID unik identitas baru aplikasi di MICROSOFT Entra ID, dan Anda akan menggunakannya di langkah berikutnya.

Berikan akses ke brankas

Langkah terakhir sebelum melakukan penerapan adalah menetapkan izin Key Vault ke identitas terkelola aplikasi Anda. Pastikan untuk mengganti keduanya <your-unique-vault-name> dengan nama vault Anda dalam --name parameter , dan masukkan nilai yang principalId Anda salin dari langkah sebelumnya sebagai nilai untuk object-id dalam perintah berikut. Untuk membuat Get dan List mengakses, jalankan perintah ini.

az keyvault set-policy \
    --secret-permissions get list \
    --name <your-unique-vault-name> \
    --object-id <your-managed-identity-principleid>

Terapkan aplikasi dan cobalah

  1. Semua konfigurasi Anda telah diatur dan Anda siap untuk menyebarkannya! Perintah berikut menerbitkan situs ke folder pub , zip ke site.zip, dan menyebarkan zip ke App Service. Pastikan untuk mengganti <your-unique-app-name> dengan nama aplikasi Anda di parameter --name.

    Catatan

    Anda harus cd kembali ke direktori KeyVaultDemoApp jika Anda tidak di sana.

    dotnet publish -o pub
    zip -j site.zip pub/*
    
    az webapp deployment source config-zip \
        --src site.zip \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
  1. Semua konfigurasi Anda telah diatur dan Anda siap untuk menerapkan! Perintah berikut akan membuat zip aplikasi Anda ke site.zip, dan menyebarkannya ke App Service. Kami mengecualikan node_modules dari zip karena App Service memulihkannya secara otomatis saat Anda menyebarkan. Pastikan untuk mengganti <your-unique-app-name> dengan nama aplikasi Anda di parameter --name.

    Catatan

    Anda harus cd kembali ke direktori KeyVaultDemoApp jika Anda tidak di sana.

    zip site.zip * -x node_modules/
    
    az webapp deployment source config-zip \
        --src site.zip \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
  1. Penyebaran mungkin memerlukan waktu satu atau dua menit untuk diselesaikan. Setelah Anda mendapatkan hasil yang menunjukkan bahwa situs disebarkan, buka https://<your-unique-app-name>.azurewebsites.net/api/SecretTest di browser. Aplikasi ini membutuhkan waktu sejenak untuk memulai untuk pertama kalinya di server, tetapi setelah itu, Anda akan melihat nilai rahasia, reindeer_flotilla.

Aplikasi Anda sudah selesai dan diterapkan!