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.
Di Azure, Anda dapat menjalankan fungsi langsung dari file paket penyebaran di aplikasi fungsi Anda. Opsi lainnya adalah menyebarkan file Anda di direktori c:\home\site\wwwroot
(Windows) atau /home/site/wwwroot
(Linux) aplikasi fungsi Anda.
Artikel ini menjelaskan manfaat menjalankan fungsi Anda dari paket. Ini juga menunjukkan cara mengaktifkan fungsi ini di aplikasi fungsi Anda.
Manfaat menjalankan dari file paket
Ada beberapa manfaat untuk menjalankan fungsi dari file paket:
- Mengurangi risiko masalah penguncian salinan file.
- Dapat diterapkan pada aplikasi produksi (dengan memulai ulang).
- Memverifikasi file yang berjalan di aplikasi Anda.
- Meningkatkan kinerja penyebaran Azure Resource Manager.
- Mengurangi waktu mulai lambat, terutama untuk fungsi JavaScript dengan pohon paket npm yang besar.
Untuk informasi selengkapnya, lihat pengumuman.
Mengaktifkan fungsi untuk dijalankan dari paket
Aplikasi fungsi pada paket hosting Konsumsi Flex berjalan dari sebuah paket secara default. Tidak ada konfigurasi khusus yang perlu dilakukan.
Untuk mengaktifkan aplikasi fungsi Anda agar berjalan dari paket pada Consumption, Elastic Premium, dan Dedicated (App Service) paket hosting, tambahkan pengaturan aplikasi WEBSITE_RUN_FROM_PACKAGE
ke aplikasi fungsi Anda. Pengaturan WEBSITE_RUN_FROM_PACKAGE
aplikasi dapat memiliki salah satu nilai berikut:
Nilai | Deskripsi |
---|---|
1 |
Menunjukkan bahwa aplikasi fungsi berjalan dari file paket lokal yang disebarkan di folder c:\home\data\SitePackages (Windows) atau /home/data/SitePackages (Linux) aplikasi fungsi Anda. |
<URL> |
Mengatur URL yang merupakan lokasi jarak jauh dari file paket tertentu yang ingin Anda jalankan. Diperlukan untuk aplikasi fungsi yang berjalan di Linux dalam paket Konsumsi. |
Tabel berikut menunjukkan nilai yang direkomendasikan WEBSITE_RUN_FROM_PACKAGE
untuk penyebaran ke sistem operasi dan paket hosting tertentu:
Paket hosting | Windows | Linux |
---|---|---|
Konsumsi |
1 sangat disarankan. |
Hanya <URL> yang didukung. |
Premi |
1 disarankan. |
1 disarankan. |
Didedikasikan |
1 disarankan. |
1 disarankan. |
Pertimbangan umum
- Jangan tambahkan pengaturan aplikasi
WEBSITE_RUN_FROM_PACKAGE
pada aplikasi di paket Flex Consumption. - File paket harus dalam format .zip. Format tar dan gzip tidak didukung.
- Penggunaan Zip untuk penyebaran disarankan.
- Saat menyebarkan aplikasi fungsi Anda ke Windows, Anda harus menyetel
WEBSITE_RUN_FROM_PACKAGE
ke1
dan melakukan publikasi dengan metode deployment menggunakan zip. - Ketika Anda menjalankan dari paket,
wwwroot
folder bersifat baca-saja dan Anda menerima kesalahan jika Anda menulis file ke direktori ini. File juga dalam format baca-saja di portal Azure. - Ukuran maksimum untuk file paket penyebaran adalah 1 GB.
- Penyebaran menggunakan penyimpanan sementara saat membuka kemasan file proyek Anda. Ini berarti bahwa aplikasi fungsi Anda harus memiliki ruang penyimpanan sementara yang cukup untuk menyimpan konten paket Anda. Perlu diingat bahwa batas penyimpanan sementara untuk paket Konsumsi adalah 500 MB per paket. Untuk mempelajari tentang cara memecahkan masalah dengan penyimpanan sementara, lihat Cara memecahkan masalah penyimpanan sementara di Azure App Service.
- Anda tidak dapat menggunakan cache lokal saat menjalankan dari paket penyebaran.
- Jika proyek Anda perlu menggunakan build jarak jauh, jangan gunakan pengaturan aplikasi
WEBSITE_RUN_FROM_PACKAGE
. Sebaliknya, tambahkan pengaturan aplikasi kustomisasi penerapanSCM_DO_BUILD_DURING_DEPLOYMENT=true
. Untuk Linux, tambahkan juga pengaturanENABLE_ORYX_BUILD=true
. Untuk informasi selengkapnya, lihat Pembangunan Jarak Jauh.
Catatan
Pengaturan WEBSITE_RUN_FROM_PACKAGE
aplikasi tidak berfungsi dengan MSDeploy seperti yang dijelaskan dalam MSDeploy VS. ZipDeploy. Anda akan menerima kesalahan selama penyebaran, seperti ARM-MSDeploy Deploy Failed
. Untuk mengatasi kesalahan ini, ubah /MSDeploy
ke /ZipDeploy
.
Tambahkan pengaturan WEBSITE_RUN_FROM_PACKAGE
Ada beberapa cara yang dapat Anda tambahkan, perbarui, dan hapus pengaturan aplikasi fungsi:
Perubahan pada pengaturan aplikasi fungsi mengharuskan aplikasi fungsi Anda dimulai ulang.
Membuat arsip zip
Arsip zip yang Anda sebarkan harus berisi semua file yang diperlukan untuk menjalankan aplikasi fungsi Anda. Anda dapat membuat arsip zip secara manual dari konten folder proyek Functions menggunakan fungsionalitas kompresi .zip bawaan atau alat non-Microsoft.
Arsip harus menyertakan file host.json di akar folder yang diekstrak. Tumpukan bahasa yang dipilih untuk aplikasi fungsi membuat persyaratan lain:
- .NET (model pekerja terisolasi)
- .NET (model dalam proses)
- Jawa
- JavaScript
- TypeScript
- PowerShell
- Ular sawah
Penting
Untuk bahasa yang menghasilkan output yang dikompilasi untuk penyebaran, pastikan untuk mengompres konten folder output yang Anda rencanakan untuk diterbitkan dan bukan seluruh folder proyek. Ketika Functions mengekstrak konten arsip zip, host.json
file harus ada di akar paket.
Gunakan WEBSITE_RUN_FROM_PACKAGE = 1
Bagian ini menyediakan informasi tentang cara menjalankan aplikasi fungsi Anda dari file paket lokal.
Pertimbangan untuk menyebarkan dari paket on-premises
- Menggunakan paket lokal adalah opsi yang disarankan untuk berjalan menggunakan paket penyebaran, kecuali saat berjalan di Linux yang dihosting dalam rencana Konsumsi.
- Penyebaran Zip adalah cara yang disarankan untuk mengunggah paket penyebaran ke situs Anda.
- Saat tidak menggunakan penyebaran zip, pastikan folder
c:\home\data\SitePackages
(Windows) atau/home/data/SitePackages
(Linux) memiliki file bernamapackagename.txt
. File ini hanya berisi nama, tanpa spasi kosong, dari file paket dalam folder ini yang saat ini sedang berjalan.
Integrasi dengan penggunaan zip
Penyebaran Zip adalah fitur Azure App Service yang memungkinkan Anda menyebarkan proyek aplikasi fungsi ke wwwroot
direktori. Proyek ini dikemas sebagai berkas .zip penyebaran. API yang sama dapat digunakan untuk menyebarkan paket Anda ke folder c:\home\data\SitePackages
(Windows) atau /home/data/SitePackages
(Linux).
Saat Anda mengatur WEBSITE_RUN_FROM_PACKAGE
nilai pengaturan aplikasi ke 1
, API penyebaran zip menyalin paket Anda ke c:\home\data\SitePackages
folder (Windows) atau /home/data/SitePackages
(Linux) alih-alih mengekstrak file ke c:\home\site\wwwroot
(Windows) atau /home/site/wwwroot
(Linux). Ini juga membuat file packagename.txt
. Setelah aplikasi fungsi Anda dimulai ulang secara otomatis, paket tersebut dipasang ke wwwroot
sebagai sistem file yang hanya dapat dibaca. Untuk informasi selengkapnya tentang penerapan zip, lihat Penggunaan zip untuk Azure Functions.
Catatan
Saat penyebaran terjadi, pengaktifan ulang aplikasi fungsi dipicu. Eksekusi fungsi yang saat ini berjalan selama penyebaran dihentikan. Untuk informasi tentang cara menulis fungsi stateless dan defensif, atur fungsi Write menjadi stateless.
Gunakan WEBSITE_RUN_FROM_PACKAGE = URL
Bagian ini menyediakan informasi tentang cara menjalankan aplikasi fungsi Anda dari paket yang disebarkan ke titik akhir URL. Opsi ini adalah satu-satunya yang didukung untuk dijalankan dari paket yang dihosting Linux dengan rencana Konsumsi. Opsi ini tidak didukung dalam paket Flex Consumption.
Pertimbangan untuk mendistribusikan dari URL
- Jangan atur
WEBSITE_RUN_FROM_PACKAGE = <URL>
di aplikasi yang menggunakan paket Flex Consumption. Opsi ini tidak didukung. - Aplikasi fungsi yang berjalan di Windows mengalami sedikit peningkatan waktu mula dingin saat paket aplikasi diterapkan ke titik akhir URL melalui .
- Saat menentukan URL, Anda juga harus menyinkronkan pemicu secara manual setelah memublikasikan paket yang diperbarui.
- Runtime Functions harus memiliki izin untuk mengakses URL paket.
- Jangan sebarkan paket Anda ke Azure Blob Storage sebagai blob publik. Sebagai gantinya, gunakan kontainer privat dengan tanda tangan akses bersama (SAS) atau gunakan identitas terkelola untuk mengaktifkan runtime Functions untuk mengakses paket.
- Anda harus mempertahankan URL SAS apa pun yang digunakan untuk penyebaran. Ketika SAS kedaluwarsa, paket tidak dapat lagi disebarkan. Dalam hal ini, Anda harus membuat SAS baru dan memperbarui pengaturan di aplikasi fungsi Anda. Anda dapat menghilangkan beban manajemen ini dengan menggunakan identitas terkelola.
- Saat menggunakan paket Premium, pastikan untuk menghilangkan "cold start".
- Saat Anda menjalankan paket Khusus, pastikan Anda mengaktifkan Always On.
- Anda dapat menggunakan Azure Storage Explorer untuk mengunggah file paket ke kontainer blob di akun penyimpanan Anda.
Mengunggah paket secara manual ke Blob Storage
Untuk menyebarkan paket dalam zip saat menggunakan opsi URL, Anda harus membuat paket penyebaran terkompresi .zip dan mengunggahnya ke tujuan. Prosedur berikut menyebarkan ke kontainer di Blob Storage:
Buat paket .zip untuk proyek Anda menggunakan utilitas pilihan Anda.
Di portal Azure, cari nama akun penyimpanan Anda atau telusuri di daftar akun penyimpanan.
Di akun penyimpanan Anda, pilih Kontainer di bawah Penyimpanan Data.
Pilih + Kontainer untuk membuat kontainer Blob Storage baru di akun Anda.
Di halaman Kontainer baru, berikan Nama (misalnya, penyebaran), pastikan tingkat akses Anonim bersifat Privat, lalu pilih Buat.
Pilih kontainer yang Anda buat, pilih Unggah, telusuri ke lokasi file .zip yang Anda buat dengan proyek Anda, lalu pilih Unggah.
Setelah unggahan selesai, pilih file blob Anda yang diunggah, dan salin URL-nya. Jika Anda tidak menggunakan identitas terkelola, Anda mungkin perlu membuat URL SAS.
Cari aplikasi fungsi Anda atau telusuri di halaman Aplikasi Fungsi.
Di aplikasi fungsi Anda, perluas Pengaturan, lalu pilih Variabel lingkungan.
Di tab Pengaturan aplikasi, pilih + Tambahkan.
Masukkan nilai
WEBSITE_RUN_FROM_PACKAGE
untuk Nama, dan tempelkan URL paket Anda di Blob Storage untuk Nilai.Pilih Terapkan, lalu pilih Terapkan dan Konfirmasi untuk menyimpan pengaturan dan memulai ulang aplikasi fungsi.
Sekarang Anda dapat menjalankan fungsi Anda di Azure untuk memverifikasi bahwa penyebaran paket penyebaran .zip file berhasil.
Ambil paket dari Azure Blob Storage menggunakan identitas terkelola
Anda dapat mengonfigurasi Azure Blob Storage untuk mengotorisasi permintaan dengan ID Microsoft Entra. Konfigurasi ini berarti bahwa alih-alih menghasilkan kunci SAS yang memiliki waktu kedaluwarsa, Anda dapat mengandalkan identitas terkelola aplikasi. Secara default, identitas yang ditetapkan sistem aplikasi digunakan. Jika Anda ingin menentukan identitas yang ditetapkan pengguna, Anda dapat mengatur pengaturan aplikasi WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
ke ID sumber daya dari identitas tersebut. Pengaturan juga dapat menerima SystemAssigned
sebagai nilai, yang setara dengan menghilangkan pengaturan.
Untuk memungkinkan paket diambil menggunakan identitas:
Pastikan blob dikonfigurasi untuk akses privat.
Berikan identitas peran Storage Blob Data Reader dengan cakupan atas blob paket. Lihat Menetapkan peran Azure untuk akses ke data blob untuk detail tentang membuat penetapan peran.
Atur pengaturan aplikasi
WEBSITE_RUN_FROM_PACKAGE
ke URL blob paket. URL ini biasanya dari bentukhttps://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}
atau sejenisnya.Jika Anda ingin menentukan identitas yang ditetapkan pengguna, Anda dapat mengatur pengaturan aplikasi
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
ke ID sumber daya dari identitas tersebut. Pengaturan juga dapat menerima "SystemAssigned" sebagai nilai, meskipun ini sama dengan menghilangkan pengaturan sama sekali. ID sumber daya adalah representasi standar untuk sumber daya di Azure. Untuk identitas terkelola yang ditetapkan pengguna, yang akan menjadi/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name
. ID sumber daya identitas terkelola yang ditetapkan pengguna dapat diperoleh di Pengaturan ->Properti ->ID untuk identitas terkelola yang ditetapkan pengguna.