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.
Dalam artikel ini, Anda mempelajari kapan dan cara mengonfigurasi file startup kustom untuk aplikasi web Python yang dihosting di Azure App Service. Meskipun file startup tidak diperlukan untuk pengembangan lokal, Azure App Service menjalankan aplikasi web yang Disebarkan dalam kontainer Docker yang dapat menggunakan perintah startup jika Anda menyediakannya.
Anda memerlukan file startup kustom dalam situasi berikut:
Argumen Gunicorn Kustom: Anda ingin memulai server web default Gunicorn dengan argumen tambahan di luar defaultnya, yaitu
--bind=0.0.0.0 --timeout 600.Kerangka Kerja atau Server Alternatif: Aplikasi Anda dibangun dengan kerangka kerja selain Flask atau Django, atau Anda ingin menggunakan server web yang berbeda alih-alih Gunicorn.
Struktur Aplikasi Flask Non-Standar: Anda memiliki aplikasi Flask yang file kode utamanya bernama sesuatu selainapp.py atau application.py, atau objek aplikasinya bernama sesuatu selain
app.
Dengan kata lain, Anda memerlukan perintah startup kustom kecuali proyek Anda memiliki file app.py atau application.py di folder root dengan objek aplikasi Flask bernama app.
Untuk informasi selengkapnya, lihat Mengonfigurasi Aplikasi Python - Proses startup kontainer.
Prasyarat
Sebelum mengonfigurasi file startup kustom, Anda memerlukan App Service on Linux yang sudah ada yang menjalankan Python. Untuk membuat App Service, ikuti panduan memulai cepat Python untuk App Service. Anda juga dapat membuat App Service menggunakan Azure CLI:
az webapp create --resource-group <group> --plan <plan> --name <app-name> --runtime "PYTHON:3.12"
Membuat file startup
Saat Anda memerlukan file startup kustom, gunakan langkah-langkah berikut:
Buat file di proyek Anda bernama startup.txt, startup.sh, atau nama lain pilihan Anda yang berisi perintah startup Anda. Lihat bagian selanjutnya dalam artikel ini untuk mengetahui detail tentang Django, Flask, dan kerangka kerja lainnya.
File startup dapat menyertakan beberapa perintah jika diperlukan.
Terapkan file ke repositori kode Anda sehingga dapat disebarkan dengan aplikasi lainnya.
Di Visual Studio Code, pilih ikon Azure di Bilah Aktivitas, perluas SUMBER DAYA, temukan dan perluas langganan Anda, perluas App Services, dan klik kanan App Service, dan pilih Buka di Portal.
Di portal Microsoft Azure, dari menu layanan di sebelah kiri, pilihKonfigurasi>. Pada halaman Konfigurasi untuk App Service, pilih Pengaturan umum, masukkan nama file startup Anda (seperti startup.txt atau startup.sh) di bawahPerintah Startup> tumpukan, lalu pilih Simpan.
Atau, Anda dapat menggunakan Azure CLI untuk mengatur perintah startup:
az webapp config set --resource-group <group> --name <app-name> --startup-file "<startup-command>"Nota
Alih-alih menggunakan file perintah startup, Anda dapat meletakkan perintah startup itu sendiri langsung di bidang Perintah Startup di portal Microsoft Azure. Menggunakan file perintah startup disarankan karena menyimpan konfigurasi Anda di repositori Anda. Ini memungkinkan kontrol versi untuk melacak perubahan dan menyederhanakan penyebaran ulang ke instans Azure App Service lainnya.
Pilih Lanjutkan saat diminta untuk memulai ulang App Service.
Jika Anda mengakses situs Azure App Service sebelum menyebarkan kode aplikasi, "Kesalahan Aplikasi" muncul karena tidak ada kode yang tersedia untuk memproses permintaan.
Perintah untuk memulai Django
Secara default, Azure App Service menemukan folder yang berisi file wsgi.py Anda dan memulai Gunicorn dengan perintah berikut:
# <module> is the folder that contains wsgi.py. If you need to use a subfolder,
# specify the parent of <module> using --chdir.
gunicorn --bind=0.0.0.0 --timeout 600 <module>.wsgi
Jika Anda ingin memodifikasi argumen Gunicorn apa pun, seperti meningkatkan nilai batas waktu menjadi 1.200 detik (--timeout 1200), buat file perintah startup kustom. Metode ini mengambil alih pengaturan default dengan persyaratan spesifik Anda. Untuk informasi selengkapnya, lihat Proses startup kontainer - aplikasi Django.
Perintah Startup Flask
Secara default, App Service on Linux mengasumsikan bahwa aplikasi Flask Anda memenuhi kriteria berikut:
- Panggilan WSGI diberi nama
app. - Kode aplikasi terkandung dalam file bernama application.py atau app.py.
- File aplikasi terletak di folder akar aplikasi.
Jika proyek Anda berbeda dari struktur ini, perintah startup kustom Anda harus mengidentifikasi lokasi objek aplikasi dalam format file:app_object:
Nama file dan/atau nama objek aplikasi yang berbeda: Jika file kode utama aplikasi hello.py dan objek aplikasi diberi nama
myapp, perintah startup adalah sebagai berikut:gunicorn --bind=0.0.0.0 --timeout 600 hello:myappFile startup berada dalam subfolder: Jika file startup adalah myapp/website.py dan objek aplikasi adalah
app, gunakan argumen Gunicorn--chdiruntuk menentukan folder lalu beri nama file startup dan objek aplikasi seperti biasa:gunicorn --bind=0.0.0.0 --timeout 600 --chdir myapp website:appFile startup berada dalam modul: Dalam kode python-sample-vscode-flask-tutorial , file startup webapp.py terkandung dalam folder hello_app, yang merupakan modul dengan file __init__.py . Objek aplikasi diberi nama
appdan didefinisikan dalam __init__.py. webapp.py menggunakan impor relatif.Karena pengaturan ini, mengarahkan Gunicorn ke
webapp:appmenghasilkan kesalahan, "Percobaan impor relatif pada modul yang bukan paket," dan aplikasi gagal dimulai.Dalam situasi ini, buat file shim yang mengimpor objek aplikasi dari modul, lalu minta Gunicorn meluncurkan aplikasi menggunakan shim. Kode python-sample-vscode-flask-tutorial , misalnya, berisi startup.py dengan konten berikut:
from hello_app.webapp import appPerintah startup adalah:
gunicorn --bind=0.0.0.0 --workers=4 startup:app
Untuk informasi selengkapnya, lihat Proses startup kontainer - Aplikasi Flask.
Kerangka kerja dan server web lainnya
Kontainer App Service yang menjalankan aplikasi Python memiliki Django dan Flask yang diinstal secara default, bersama dengan server web Gunicorn.
Untuk menggunakan kerangka kerja selain Django atau Flask (seperti Falcon, FastAPI, dan lainnya), atau untuk menggunakan server web yang berbeda:
Sertakan kerangka kerja dan server web dalam file requirements.txt Anda.
Dalam perintah startup Anda, identifikasi WSGI yang dapat dipanggil seperti yang dijelaskan di bagian sebelumnya untuk Flask.
Untuk meluncurkan server web selain Gunicorn, gunakan
python -mperintah alih-alih memanggil server secara langsung. Misalnya, perintah berikut memulai server uvicorn , dengan asumsi bahwa WSGI yang dapat dipanggil diberi namaappdan ditemukan di application.py:python -m uvicorn application:app --host 0.0.0.0Anda menggunakan
python -mkarena server web yang diinstal melalui requirements.txt tidak ditambahkan ke lingkungan global Python dan oleh karena itu tidak dapat dipanggil secara langsung. Perintahpython -mmemanggil server dari dalam lingkungan virtual saat ini.
Menerapkan aplikasi Anda
Setelah mengonfigurasi file startup, Anda perlu menyebarkan kode aplikasi ke App Service. Gunakan Azure CLI atau metode penyebaran pilihan Anda:
az webapp up --name <app-name>
Untuk opsi penyebaran lainnya, lihat Praktik terbaik penyebaran.