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.
Azure Functions mendukung tiga opsi build untuk menerbitkan aplikasi Python Anda ke Azure. Pilih metode build Anda berdasarkan lingkungan lokal, dependensi aplikasi, dan persyaratan runtime Anda.
Perbandingan cepat untuk aksi kompilasi
| Jenis penyebaran | Di mana dependensi diinstal | Kasus penggunaan umum |
|---|---|---|
| Build jarak jauh (disarankan) | Azure (App Service) | Default, direkomendasikan untuk sebagian besar pengguna |
| Build lokal | Komputer Anda | Dev Linux/macOS, skenario Windows terbatas |
| Dependensi kustom | Ditangani melalui URL indeks tambahan atau penginstalan lokal | Dependensi Non-PyPI |
Pertimbangan paket penyebaran
Saat menyebarkan aplikasi fungsi Python Anda ke Azure, ingatlah persyaratan pengemasan ini:
- Isi paket, bukan folder: Sebarkan konten folder proyek Anda, bukan folder itu sendiri.
-
Tingkat
host.jsonakar : Pastikan satuhost.jsonfile berada di akar paket penyebaran, tidak ditumpuk dalam subfolder. -
Mengecualikan file pengembangan: Anda dapat mengecualikan folder seperti
tests/,.github/, dan.venv*/dari paket yang disebarkan dengan menyertakannya di.funcignore. - Lingkungan build harus cocok dengan lingkungan produksi: Dependensi Anda harus dibangun pada komputer ubuntu menggunakan versi python yang sama dengan aplikasi produksi. Pembangunan jarak jauh menangani skenario ini secara otomatis.
-
Dependensi harus diinstal ke
./.python_packages/lib/site-packagesdengan tepat: Pembangunan jarak jauh menginstal semua dependensi yang tercantum dalamrequirements.txtke dalam direktori yang benar. -
Perhatikan ukuran paket penyebaran: kumpulan dependensi yang besar meningkatkan waktu build, latensi awal, dan waktu impor serta inisialisasi modul. Aplikasi dengan pustaka ilmiah atau ML besar (termasuk
pytorch) sangat terpengaruh. - Build jarak jauh memiliki batas waktu 60 detik: Jika penginstalan dependensi melebihi batas, build gagal. Dalam hal ini, pertimbangkan untuk menggunakan build lokal dan mendistribusikan dengan dependensi bawaan.
-
Impor modul memiliki batas waktu 2 menit: Pemuatan modul Python dan pengindeksan fungsi selama startup memiliki batas 2 menit untuk Python 3.13 ke atas, atau untuk versi python yang lebih lama dengan
PYTHON_ENABLE_INIT_INDEXINGdiaktifkan. Jika aplikasi Anda melebihi ini, kurangi impor tingkat atas atau gunakan impor malas (impor modul di dalam isi fungsi alih-alih pada cakupan global).
Build berbasis jarak jauh
Penyusunan jarak jauh adalah pendekatan yang direkomendasikan untuk penyebaran aplikasi Python Anda yang hanya berupa kode ke Functions.
Dengan pembangunan jarak jauh, Platform Fungsi menangani penginstalan paket dan memastikan kompatibilitas dengan lingkungan runtime jarak jauh. Menggunakan build jarak jauh juga menghasilkan paket penyebaran yang lebih kecil.
Anda dapat menggunakan build jarak jauh saat menerbitkan aplikasi Python menggunakan alat ini:
-
Azure Functions Core Tools:
func azure functionapp publishperintah meminta build jarak jauh secara default saat menerbitkan aplikasi Python. -
AZ CLI:
az functionapp deployment source config-zipmenggunakan build jarak jauh secara default saat menyebarkan aplikasi Python. - Visual Studio Code: perintah Azure Functions: Deploy to Azure... selalu menggunakan build jarak jauh.
-
Pengiriman berkelanjutan dengan menggunakan GitHub Actions: tindakan Azure/functions-action@v1 menggunakan build jarak jauh saat
remote-buildparameter diatur ketrueuntuk paket Konsumsi Flex atau kapanscm-do-build-during-deploymentdanenable-oryx-builddiatur ketrueuntuk paket Khusus.
Untuk mengaktifkan build jarak jauh untuk skenario lain, seperti Pengiriman berkelanjutan dengan Azure Pipelines, lihat Mengaktifkan Build Jarak Jauh.
Build jarak jauh juga mendukung indeks paket kustom saat menggunakan PIP_EXTRA_INDEX_URL pengaturan aplikasi. Untuk informasi selengkapnya, lihat Pembangunan jarak jauh.
Penting
Pembangunan jarak jauh menginstal semua dependensi terdaftar dalam requirements.txt. Untuk memastikan semua paket yang diperlukan diinstal, pastikan untuk menyertakan dependensi tersebut dalam file Anda requirements.txt .
Build lokal
Jika Anda tidak meminta build yang dilakukan secara jarak jauh, maka dependensi akan diinstal pada komputer Anda. Seluruh proyek dan dependensi lokal kemudian dipaketkan secara lokal dan disebarkan ke aplikasi fungsi Anda. Menggunakan hasil build lokal menghasilkan unggahan paket yang lebih besar.
Anda juga perlu menginstal dependensi ke direktori yang benar. Gunakan pip install --target="./.python_packages/lib/site-packages" untuk menginstal dependensi yang diperlukan ke dalam folder lokal .python_packages/lib/site-packages Anda.
Misalnya, jika Anda memiliki dependensi yang tercantum dalam requirements.txt file, Anda dapat menjalankan perintah ini:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
Gunakan build lokal saat:
- Anda mengembangkan secara lokal di Linux atau macOS.
- Pembuatan jarak jauh tidak tersedia atau dibatasi.
- Anda ingin menentukan dependensi dalam file selain
requirements.txt, sepertipyproject.toml.
Alat berikut dapat dikonfigurasi untuk menggunakan build lokal:
-
Azure Functions Core Tools: gunakan
func azure functionapp publishdengan--no-buildopsi. -
AZ CLI:
az functionapp deployment source config-zipdengan--build-remote=falsebendera. -
Pengiriman berkelanjutan dengan menggunakan GitHub Actions: atur
remote-buildparameter kefalseuntuk paket Konsumsi Flex atau aturscm-do-build-during-deploymentdanenable-oryx-buildkefalseuntuk paket Khusus.
Penting
Saat mengembangkan aplikasi Python Anda di komputer Windows, jangan gunakan build lokal. Paket yang dibangun di komputer Windows sering kali mengalami masalah saat didistribusikan dan dijalankan pada Linux dalam Azure Functions. Hanya gunakan build lokal jika Anda yakin paket berjalan pada sistem berbasis Linux.
Dependensi kustom
Azure Functions mendukung dependensi kustom dan non-PyPI lainnya dengan menggunakan PIP_EXTRA_INDEX_URL pengaturan aplikasi atau dengan membuat build lokal di komputer Linux atau macOS.
Pembangunan jarak jauh dengan URL indeks tambahan
Saat paket privat Anda tersedia secara online, Anda dapat meminta build jarak jauh setelah mengatur lokasi paket privat dengan menggunakan PIP_EXTRA_INDEX_URL pengaturan aplikasi.
Saat Anda mengatur PIP_EXTRA_INDEX_URL, build jarak jauh gunakan umpan paket ini selama penyebaran.
PIP_INDEX_URL menggantikan indeks paket, jadi pertimbangkan untuk menggunakan PIP_EXTRA_INDEX_URL sebagai gantinya untuk mencegah perilaku yang tidak terduga.
Paket atau roda lokal
Paket dan wheel lokal didukung saat membangun aplikasi Fungsi Azure Python.
Untuk menginstal paket atau roda ini menggunakan build jarak jauh, Anda dapat menyertakan dependensi dalam file Anda requirements.txt dan menyebarkan dengan build jarak jauh yang diaktifkan.
Misalnya, file Anda requirements.txt mungkin terlihat seperti cuplikan berikut:
# Installing a custom wheel
<my_package_wheel>.whl
# Installing a local package
path/to/my/package
Untuk menginstal dependensi ini menggunakan build lokal, instal dependensi ke folder lokal .python_packages/lib/site-packages Anda dan sebarkan dengan build jarak jauh yang dinonaktifkan.
Misalnya, jika Anda memiliki paket yang ditentukan dalam requirements.txt file, Anda dapat menginstal dan menerbitkan menggunakan perintah berikut dan Core Tools:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
func azure functionapp publish <APP_NAME> --no-build