Latihan - Publikasikan fungsi ke Azure menggunakan Core Tools

Selesai

Dalam latihan ini, Anda membuat aplikasi fungsi di Azure dan menerbitkan proyek kami.

Buat aplikasi fungsi

Penting

Prosedur dalam unit ini bergantung pada pekerjaan yang diselesaikan di Unit 3. Kotak pasir untuk modul ini harus aktif. Kotak pasir memberi Anda akses sementara secara gratis ke Azure dan CLI Azure.

Azure Cloud Shell harus sudah masuk ke akun Anda dan dikonfigurasi. Jika kotak pasir tidak aktif, Anda telah kehilangan akses, sumber daya, dan output yang diperlukan. Kembali dan selesaikan Unit 3.

Sebelum dapat menerbitkan kode ke aplikasi fungsi menggunakan Core Tools, Anda perlu membuat aplikasi di Azure menggunakan Azure CLI dari Cloud Shell.

Untuk membuat aplikasi fungsi di Azure, jalankan perintah berikut di Azure Cloud Shell.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Inilah yang dilakukan perintah ini:

  • Tiga baris pertama di atas membuat variabel shell dengan nilai yang kita gunakan berulang kali dalam perintah berikut.

    • Untuk grup sumber daya, tentukan grup yang dibuat untuk Anda oleh kotak pasir. Ini seharusnya sudah menjadi nilai yang benar berdasarkan kotak pasir Anda saat ini.
    • Akun penyimpanan dan nama aplikasi fungsi mencakup $(openssl rand -hex 5), yang menghasilkan string lima karakter acak, untuk memastikan bahwa nama memenuhi persyaratan unik secara global, serta persyaratan penamaan layanan lainnya.
  • az storage account create membuat akun penyimpanan Azure yang digunakan aplikasi fungsi. Akun penyimpanan adalah sumber daya Azure terpisah yang harus dibuat sebelum aplikasi fungsi dapat dibuat.

  • az functionapp create membuat aplikasi fungsi. Aplikasi baru Anda menggunakan node runtime (JavaScript), yang berjalan tanpa server dalam paket hosting Konsumsi.

Catatan

Perintah ini az functionapp create juga mencoba membuat instans Application Insights secara otomatis untuk memantau eksekusi di aplikasi fungsi Anda. Karena sumber daya Application Insights berbasis ruang kerja saat ini tidak dapat dihosting di kotak pasir, fungsi Anda berfungsi tetapi log eksekusi tidak dikirim ke Application Insights.

Menerbitkan ke Azure

Setelah membuat aplikasi fungsi di Azure, Anda dapat menerbitkan proyek ke aplikasi tersebut dengan Core Tools.

Jalankan perintah berikut di Cloud Shell untuk menerbitkan. Jalankan cd terlebih dahulu untuk memastikan Anda masih berada di folder proyek fungsi sebelum menerbitkan.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Catatan

Jika perintah ini menampilkan kesalahan yang tidak dapat ditemukan aplikasi Anda, tunggu dua menit, lalu coba lagi. Aplikasi fungsi baru membutuhkan waktu beberapa detik agar dapat ditemukan oleh Core Tools setelah dibuat.

Selain itu, Anda menambahkan --force ke perintah untuk memperbarui ketidakcocokan versi aplikasi fungsi.

Tidak seperti latihan sebelumnya, di mana Anda sementara menghosting fungsi Anda secara lokal dari Alat Inti, fungsi Anda sekarang aktif di web. Ini tetap tersedia secara global sampai kotak pasir untuk tutorial ini kedaluwarsa. Karena titik akhir HTTP didefinisikan dengan anonymous tingkat otorisasi, titik akhir HTTP dapat diakses oleh siapa pun di web.

Jalankan fungsi

Fungsi Anda sekarang dipublikasikan ke Azure dan dapat dipanggil dari mana saja. Sebagai fungsi yang dipicu HTTP yang merespons permintaan GET, fungsi ini dapat dijalankan dari browser apa pun.

  1. Jalankan perintah berikut untuk mendapatkan URL permintaan:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Tempelkan URL dari output ke tab browser baru. Anda melihat output yang sama dengan yang Anda amati saat menjalankan fungsi secara lokal tanpa menyediakan parameter string kueri yang tepat. Tidak ada kunci yang disertakan dalam output saat Anda menggunakan anonymous tingkat otorisasi.

  3. Tambahkan ?principal=5000&rate=.035&term=36 ke akhir URL dan pilih Enter. Pastikan Anda mempertahankan code parameter, jika ada. Hasil yang dikembalikan adalah 6300.000000000001, seperti yang diharapkan.