Sebarkan aplikasi web Python (Django) dengan PostgreSQL di Azure App Service

Dalam tutorial ini, Anda akan menyebarkan aplikasi web Python berbasis data (Django atau Flask) ke Azure App Service dengan layanan database relasional Azure Database for PostgreSQL. Azure App Service mendukung Python di lingkungan server Linux.

An architecture diagram showing an App Service with a PostgreSQL database in Azure.

Untuk menyelesaikan tutorial ini, Anda memerlukan:

Lewati ke akhir

Dengan Azure Developer CLI terinstal, Anda dapat menyebarkan aplikasi sampel yang dikonfigurasi sepenuhnya yang ditampilkan dalam tutorial ini dan melihatnya berjalan di Azure. Cukup jalankan perintah berikut di direktori kerja kosong:

azd auth login
azd init --template msdocs-flask-postgresql-sample-app
azd up

Aplikasi sampel

Aplikasi Python sampel menggunakan kerangka termos dan Django disediakan untuk membantu Anda mengikuti tutorial ini. Untuk menyebarkannya tanpa menjalankannya secara lokal, lewati bagian ini.

Untuk menjalankan aplikasi secara lokal, pastikan Anda memiliki Python 3.7 atau lebih tinggi dan PostgreSQL yang diinstal secara lokal. Kemudian, kloning cabang repositori starter-no-infra sampel dan ubah ke akar repositori.

git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app

Buat file .env seperti yang ditunjukkan di bawah ini menggunakan file .env.sample sebagai panduan. Atur nilai DBNAME ke nama database yang ada di instans PostgreSQL lokal Anda. Atur nilai DBHOST, , DBUSER, dan DBPASS sesuai untuk instans PostgreSQL lokal Anda.

DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>

Buat lingkungan virtual untuk aplikasi:

py -m venv .venv
.venv\scripts\activate

Pasang dependensi:

pip install -r requirements.txt

Jalankan aplikasi sampel dengan perintah berikut:

# Run database migration
flask db upgrade
# Run the app at http://127.0.0.1:5000
flask run

1. Buat App Service dan PostgreSQL

git clone https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.git

Dalam langkah ini, Anda membuat sumber daya Azure. Langkah-langkah yang digunakan dalam tutorial ini membuat sekumpulan sumber daya aman secara default yang menyertakan App Service dan Azure Database for PostgreSQL. Untuk proses pembuatan, Anda akan menentukan:

  • Nama untuk aplikasi web. Ini adalah nama yang digunakan sebagai bagian dari nama DNS untuk aplikasi web Anda dalam bentuk https://<app-name>.azurewebsites.net.
  • Wilayah tempat menjalankan aplikasi secara fisik di dunia.
  • Tumpukan runtime untuk aplikasi. Di sinilah Anda memilih versi Python yang akan digunakan untuk aplikasi Anda.
  • Paket hosting untuk aplikasi. Ini adalah tingkat harga yang mencakup serangkaian fitur dan kapasitas penskalaan untuk aplikasi Anda.
  • Resource Group untuk aplikasi. Grup sumber daya memungkinkan Anda mengelompokkan (dalam kontainer logika) semua sumber daya Azure yang diperlukan untuk aplikasi.

Masuk ke portal Microsoft Azure dan ikuti langkah-langkah ini untuk membuat sumber daya Azure App Service Anda.

Langkah 1: Di portal Azure:

  1. Masukkan "database apl web" di bilah pencarian di bagian atas portal Azure.
  2. Pilih item berlabel Apl Web + Database di bawah judul Marketplace. Anda juga dapat menavigasi ke wizard pembuatan secara langsung.

A screenshot showing how to use the search box in the top tool bar to find the Web App + Database creation wizard (Flask).

Langkah 2: Di halaman Buat Aplikasi Web + Database , isi formulir sebagai berikut.

  1. Grup Sumber Daya → Pilih Buat baru dan gunakan nama msdocs-python-postgres-tutorial.
  2. Wilayah → Wilayah Azure di dekat Anda.
  3. Namamsdocs-python-postgres-XYZ di mana XYZ adalah tiga karakter acak. Nama ini harus unik di seluruh Azure.
  4. Tumpukan runtime → Python 3.10.
  5. DatabasePostgreSQL - Server Fleksibel dipilih secara default sebagai mesin database. Nama server dan nama database juga diatur secara default ke nilai yang sesuai.
  6. Paket hostingDasar. Setelah siap, Anda dapat melakukan peningkatan ke tingkat harga produksi nanti.
  7. Pilih Tinjau + buat.
  8. Setelah validasi selesai, pilih Buat.

A screenshot showing how to configure a new app and database in the Web App + Database wizard (Flask).

Langkah 3: Penyebaran membutuhkan waktu beberapa menit untuk diselesaikan. Setelah penyebaran selesai, pilih tombol Buka sumber daya. Anda diarahkan ke aplikasi App Service, tetapi sumber daya berikut dibuat:

  • Grup sumber daya → Kontainer untuk semua sumber daya yang dibuat.
  • App Service → Menentukan sumber daya komputasi untuk App Service. Paket Linux di tingkat Dasar dibuat.
  • App Service → Mewakili aplikasi Anda dan berjalan dalam paket App Service.
  • Jaringan virtual → Terintegrasi dengan aplikasi App Service dan mengisolasi lalu lintas jaringan back-end.
  • Server fleksibel Azure Database for PostgreSQL → Hanya dapat diakses dari dalam jaringan virtual. Database dan pengguna dibuat untuk Anda di server.
  • Zona DNS privat → Memungkinkan resolusi DNS server PostgreSQL di jaringan virtual.

A screenshot showing the deployment process completed (Flask).

2. Verifikasi pengaturan koneksi

Wizard pembuatan menghasilkan variabel konektivitas untuk Anda sudah sebagai pengaturan aplikasi. Pengaturan aplikasi adalah salah satu cara untuk menjaga rahasia koneksi keluar dari repositori kode Anda. Saat Anda siap untuk memindahkan rahasia Anda ke lokasi yang lebih aman, berikut adalah artikel tentang menyimpan di Azure Key Vault.

Langkah 1: Di halaman App Service, di menu sebelah kiri, pilih Konfigurasi.

A screenshot showing how to open the configuration page in App Service (Flask).

Langkah 2: Di tab Pengaturan aplikasi di halaman Konfigurasi , verifikasi bahwa AZURE_POSTGRESQL_CONNECTIONSTRING ada. Itu akan disuntikkan ke lingkungan runtime sebagai variabel lingkungan.

A screenshot showing how to see the autogenerated connection string (Flask).

Langkah 3: Di terminal atau prompt perintah, jalankan skrip Python berikut untuk menghasilkan rahasia unik: python -c 'import secrets; print(secrets.token_hex())'. Salin nilai output yang akan digunakan di langkah berikutnya.

3. Menyebarkan kode sampel

Dalam langkah ini, Anda akan mengonfigurasi penyebaran GitHub menggunakan GitHub Actions. Ini hanya salah satu dari banyak cara untuk menyebarkan ke App Service, tetapi juga cara yang bagus untuk memiliki integrasi berkelanjutan dalam proses penyebaran Anda. Secara default, setiap git push repositori GitHub Anda akan memulai tindakan build dan deploy.

Langkah 1: Di jendela browser baru:

  1. Masuk ke akun GitHub Anda.
  2. Buka https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.
  3. Pilih Fork.
  4. Pilih Buat fork.

A screenshot showing how to create a fork of the sample GitHub repository (Flask).

Langkah 2: Di halaman GitHub, buka Visual Studio Code di browser dengan menekan tombol . .

A screenshot showing how to open the Visual Studio Code browser experience in GitHub (Flask).

Langkah 3: Di Visual Studio Code di browser, buka azureproject/production.py di penjelajah. Lihat variabel lingkungan yang digunakan di lingkungan produksi, termasuk pengaturan aplikasi yang Anda lihat di halaman konfigurasi.

A screenshot showing Visual Studio Code in the browser and an opened file (Flask).

Langkah 4: Kembali ke halaman App Service, di menu sebelah kiri, pilih Pusat Penyebaran.

A screenshot showing how to open the deployment center in App Service (Flask).

Langkah 5: Di halaman Pusat Penyebaran:

  1. Di Sumber, pilih GitHub. Secara default, GitHub Actions dipilih sebagai penyedia build.
  2. Masuk ke akun GitHub Anda dan ikuti perintah untuk mengotorisasi Azure.
  3. Di Organisasi, pilih akun Anda.
  4. Di Repositori, pilih msdocs-flask-postgresql-sample-app.
  5. Di Cabang, pilih utama.
  6. Pertahankan opsi default dipilih untuk Menambahkan alur kerja.
  7. Di bawah Jenis autentikasi, pilih Identitas yang ditetapkan pengguna.
  8. Di menu atas, pilih Simpan. App Service menerapkan file alur kerja ke dalam repositori GitHub yang dipilih, di direktori .github/workflows.

A screenshot showing how to configure CI/CD using GitHub Actions (Flask).

Langkah 6: Di halaman Pusat Penyebaran:

  1. Pilih Log. Eksekusi penyebaran sudah dimulai.
  2. Di item log untuk eksekusi penyebaran, pilih Build/Sebarkan Log.

A screenshot showing how to open deployment logs in the deployment center (Flask).

Langkah 7: Anda dibawa ke repositori GitHub Anda dan melihat bahwa tindakan GitHub sedang berjalan. File alur kerja menentukan dua tahap terpisah, mem-build dan menyebarkan. Tunggu hingga eksekusi GitHub menampilkan status Selesai. Dibutuhkan sekitar 5 menit.

A screenshot showing a GitHub run in progress (Flask).

Mengalami masalah? Periksa panduan Pemecahan Masalah.

4. Hasilkan skema database

Dengan database PostgreSQL yang dilindungi oleh jaringan virtual, cara termampu untuk menjalankan migrasi database Flask adalah dalam sesi SSH dengan kontainer App Service.

Langkah 1: Kembali ke halaman App Service, di menu sebelah kiri,

  1. Pilih SSH.
  2. Pilih Buka.

A screenshot showing how to open the SSH shell for your app from the Azure portal (Flask).

Langkah 2: Di terminal SSH, jalankan flask db upgrade. Jika berhasil, App Service berhasil tersambung ke database. Hanya perubahan pada file di /home yang dapat bertahan di luar mulai ulang aplikasi. Perubahan di luar /home tidak dipertahankan.

A screenshot showing the commands to run in the SSH shell and their output (Flask).

5. Telusuri aplikasi

Langkah 1: Di halaman App Service:

  1. Dari menu kiri, pilih Ringkasan.
  2. Pilih URL aplikasi Anda. Anda juga dapat menavigasi langsung ke https://<app-name>.azurewebsites.net.

A screenshot showing how to launch an App Service from the Azure portal (Flask).

Langkah 2: Tambahkan beberapa restoran ke daftar. Selamat, Anda menjalankan aplikasi web di Azure App Service, dengan konektivitas yang aman ke Azure Database for PostgreSQL.

A screenshot of the Flask web app with PostgreSQL running in Azure showing restaurants and restaurant reviews (Flask).

6. Mengalirkan log diagnostik

Azure App Service mengambil semua output pesan ke konsol untuk membantu Anda mendiagnosis masalah dengan aplikasi Anda. Aplikasi sampel menyertakan print() pernyataan untuk mendemonstrasikan kemampuan ini seperti yang ditunjukkan di bawah ini.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Langkah 1: Di halaman App Service:

  1. Dari menu kiri, pilih Log App Service.
  2. Di Pengelogan aplikasi, pilih Sistem File.
  3. Di menu atas, pilih Simpan.

A screenshot showing how to enable native logs in App Service in the Azure portal.

Langkah 2: Dari menu sebelah kiri, pilih Aliran log. Anda melihat log untuk aplikasi Anda, termasuk log platform dan log dari dalam kontainer.

A screenshot showing how to view the log stream in the Azure portal.

Pelajari selengkapnya tentang pengelogan di aplikasi Python dalam seri tentang menyiapkan Azure Monitor untuk aplikasi Python Anda.

7. Membersihkan sumber daya

Setelah selesai, Anda dapat menghapus semua sumber daya dari langganan Azure dengan menghapus grup sumber daya.

Langkah 1: Di bilah pencarian di bagian atas portal Azure:

  1. Masukkan nama grup sumber daya.
  2. Pilih grup sumber daya.

A screenshot showing how to search for and navigate to a resource group in the Azure portal.

Langkah 2: Di halaman grup sumber daya, pilih Hapus grup sumber daya.

A screenshot showing the location of the Delete Resource Group button in the Azure portal.

Langkah 3:

  1. Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan Anda.
  2. Pilih Hapus.

A screenshot of the confirmation dialog for deleting a resource group in the Azure portal. :

1. Buat sumber daya Azure dan sebarkan aplikasi sampel

Dalam langkah ini, Anda membuat sumber daya Azure dan menyebarkan aplikasi sampel ke App Service di Linux. Langkah-langkah yang digunakan dalam tutorial ini membuat sekumpulan sumber daya aman secara default yang menyertakan App Service dan Azure Database for PostgreSQL.

  1. Jika Anda belum melakukannya, kloning cabang repositori starter-no-infra sampel di terminal lokal.

    git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
    cd msdocs-flask-postgresql-sample-app
    

    Cabang kloning ini adalah titik awal Anda. Ini berisi aplikasi Flask drive data sederhana.

  2. Dari akar repositori, jalankan azd init.

    azd init --template python-app-service-postgresql-infra
    
  3. Saat diminta, berikan jawaban berikut:

    Pertanyaan Jawaban
    Direktori saat ini tidak kosong. Apakah Anda ingin menginisialisasi proyek di sini di '<your-directory>'? Y
    Apa yang ingin Anda lakukan dengan file-file ini? Jaga agar file saya yang ada tidak berubah
    Masukkan nama lingkungan baru Ketik nama unik. Templat azd menggunakan nama ini sebagai bagian dari nama DNS aplikasi web Anda di Azure (<app-name>.azurewebsites.net). Karakter alfanumerik dan tanda hubung diperbolehkan.
  4. Jalankan azd up perintah untuk menyediakan sumber daya Azure yang diperlukan dan menyebarkan kode aplikasi. Jika Anda belum masuk ke Azure, browser akan meluncurkan dan meminta Anda untuk masuk. Perintah juga azd up akan meminta Anda untuk memilih langganan dan lokasi yang diinginkan untuk disebarkan.

    azd up
    

    Perintah azd up mungkin perlu waktu beberapa menit untuk diselesaikan. Ini juga mengkompilasi dan menyebarkan kode aplikasi Anda, tetapi Anda akan memodifikasi kode nanti untuk bekerja dengan App Service. Saat sedang berjalan, perintah menyediakan pesan tentang proses provisi dan penyebaran, termasuk tautan ke penyebaran di Azure. Setelah selesai, perintah juga menampilkan tautan ke aplikasi penyebaran.

    Templat azd ini berisi file (azure.yaml dan direktori infra ) yang menghasilkan arsitektur aman secara default dengan sumber daya Azure berikut:

    • Grup sumber daya → Kontainer untuk semua sumber daya yang dibuat.
    • App Service → Menentukan sumber daya komputasi untuk App Service. Paket Linux di tingkat B1 ditentukan.
    • App Service → Mewakili aplikasi Anda dan berjalan dalam paket App Service.
    • Jaringan virtual → Terintegrasi dengan aplikasi App Service dan mengisolasi lalu lintas jaringan back-end.
    • Server fleksibel Azure Database for PostgreSQL → Hanya dapat diakses dari dalam jaringan virtual. Database dan pengguna dibuat untuk Anda di server.
    • Zona DNS privat → Memungkinkan resolusi DNS server PostgreSQL di jaringan virtual.
    • Ruang kerja Analitik Log → Bertindak sebagai kontainer target bagi aplikasi Anda untuk mengirimkan lognya, di mana Anda juga dapat mengkueri log.

2. Gunakan database string koneksi

Templat azd yang Anda gunakan menghasilkan variabel konektivitas untuk Anda sudah sebagai pengaturan aplikasi dan mengeluarkannya ke terminal untuk kenyamanan Anda. Pengaturan aplikasi adalah salah satu cara untuk menjaga rahasia koneksi keluar dari repositori kode Anda.

  1. Dalam output azd, temukan pengaturan aplikasi dan temukan pengaturan AZURE_POSTGRESQL_CONNECTIONSTRING dan AZURE_REDIS_CONNECTIONSTRING. Untuk menjaga rahasia tetap aman, hanya nama pengaturan yang ditampilkan. Mereka terlihat seperti ini dalam output azd:

     App Service app has the following settings:
    
             - AZURE_POSTGRESQL_CONNECTIONSTRING
             - AZURE_REDIS_CONNECTIONSTRING
             - FLASK_DEBUG
             - SCM_DO_BUILD_DURING_DEPLOYMENT
             - SECRET_KEY
     
  2. AZURE_POSTGRESQL_CONNECTIONSTRINGberisi string koneksi ke database Postgres di Azure, dan AZURE_REDIS_CONNECTIONSTRING berisi string koneksi ke cache Redis di Azure. Anda perlu menggunakannya kode Anda untuk menyambungkannya. Buka azureproject/production.py, batalkan komentar baris berikut, dan simpan file:

    conn_str = os.environ['AZURE_POSTGRESQL_CONNECTIONSTRING']
    conn_str_params = {pair.split('=')[0]: pair.split('=')[1] for pair in conn_str.split(' ')}
    DATABASE_URI = 'postgresql+psycopg2://{dbuser}:{dbpass}@{dbhost}/{dbname}'.format(
        dbuser=conn_str_params['user'],
        dbpass=conn_str_params['password'],
        dbhost=conn_str_params['host'],
        dbname=conn_str_params['dbname']
    )
    

    Kode aplikasi Anda sekarang dikonfigurasi untuk menyambungkan ke database PostgreSQL di Azure. Jika Anda mau, buka app.py dan lihat bagaimana DATABASE_URI variabel lingkungan digunakan.

  3. Di terminal, jalankan azd deploy.

    azd deploy
    

4. Hasilkan skema database

Dengan database PostgreSQL yang dilindungi oleh jaringan virtual, cara termampu untuk menjalankan migrasi database Flask adalah dalam sesi SSH dengan kontainer App Service.

  1. Dalam output azd, temukan URL untuk sesi SSH dan navigasikan ke dalamnya di browser. Ini terlihat seperti ini dalam output:

     Open SSH session to App Service container at: https://<app-name>.scm.azurewebsites.net/webssh/host
     
  2. Di terminal SSH, jalankan flask db upgrade. Jika berhasil, App Service berhasil tersambung ke database.

    A screenshot showing the commands to run in the SSH shell and their output (Flask).

    Catatan

    Hanya perubahan pada file di /home yang dapat bertahan di luar mulai ulang aplikasi. Perubahan di luar /home tidak dipertahankan.

5. Telusuri aplikasi

  1. Dalam output azd, temukan URL aplikasi Anda dan navigasikan ke url tersebut di browser. URL terlihat seperti ini dalam output AZD:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>.azurewebsites.net/
     
  2. Tambahkan beberapa restoran ke daftar.

    Selamat, Anda menjalankan aplikasi web di Azure App Service, dengan konektivitas yang aman ke Azure Database for PostgreSQL.

6. Mengalirkan log diagnostik

Azure App Service dapat mengambil log konsol untuk membantu Anda mendiagnosis masalah dengan aplikasi Anda. Untuk kenyamanan, templat azd telah mengaktifkan pengelogan ke sistem file lokal serta mengirimkannya ke ruang kerja Analitik Log.

Aplikasi sampel menyertakan print() pernyataan untuk menunjukkan kemampuan ini seperti yang ditunjukkan dalam cuplikan berikut.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Dalam output azd, temukan tautan untuk mengalirkan log App Service dan navigasikan ke log tersebut di browser. Tautan terlihat seperti ini dalam output azd:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

Pelajari selengkapnya tentang pengelogan di aplikasi Python dalam seri tentang menyiapkan Azure Monitor untuk aplikasi Python Anda.

7. Membersihkan sumber daya

Untuk menghapus semua sumber daya Azure di lingkungan penyebaran saat ini, jalankan azd down.

azd down

Pemecahan Masalah

Tercantum di bawah ini adalah masalah yang mungkin Anda temui saat mencoba bekerja melalui tutorial ini dan langkah-langkah untuk mengatasinya.

Saya tidak dapat tersambung ke sesi SSH

Jika Anda tidak dapat terhubung ke sesi SSH, aplikasi itu sendiri telah gagal dimulai. Periksa log diagnostik untuk detailnya. Misalnya, jika Anda melihat kesalahan seperti KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING', itu mungkin berarti bahwa variabel lingkungan hilang (Anda mungkin telah menghapus pengaturan aplikasi).

Saya mendapatkan kesalahan saat menjalankan migrasi database

Jika Anda mengalami kesalahan yang terkait dengan menyambungkan ke database, periksa apakah pengaturan aplikasi (AZURE_POSTGRESQL_CONNECTIONSTRING) telah diubah. Tanpa string koneksi itu, perintah migrasi tidak dapat berkomunikasi dengan database.

Tanya jawab umum

Berapa biaya untuk penyiapan ini?

Harga untuk sumber daya yang dibuat adalah sebagai berikut:

  • Paket App Service dibuat di tingkat Dasar dan dapat ditingkatkan atau diturunkan. Lihat Harga App Service.
  • Server fleksibel PostgreSQL dibuat di tingkat burstable terendah Standard_B1ms, dengan ukuran penyimpanan minimum, yang dapat ditingkatkan atau diturunkan skalanya. Lihat Azure Database untuk harga PostgreSQL.
  • Jaringan virtual tidak dikenakan biaya kecuali Anda mengonfigurasi fungsionalitas tambahan, seperti peering. Lihat Harga Azure Virtual Network.
  • Zona DNS privat dikenakan biaya kecil. Lihat Harga Azure DNS.

Bagaimana cara menyambungkan ke server PostgreSQL yang diamankan di belakang jaringan virtual dengan alat lain?

  • Untuk akses dasar dari alat baris perintah, Anda dapat menjalankan psql dari terminal SSH aplikasi.
  • Untuk terhubung dari alat desktop, komputer Anda harus berada dalam jaringan virtual. Misalnya, itu bisa berupa Azure VM yang terhubung ke salah satu subnet, atau komputer di jaringan lokal yang memiliki koneksi VPN situs-ke-situs dengan jaringan virtual Azure.
  • Anda juga dapat mengintegrasikan Azure Cloud Shell dengan jaringan virtual.

Bagaimana cara kerja pengembangan aplikasi lokal dengan GitHub Actions?

Menggunakan file alur kerja yang dibuat secara otomatis dari App Service sebagai contoh, masing-masing git push memulai eksekusi build dan penyebaran baru. Dari klon lokal repositori GitHub, Anda membuat pembaruan yang diinginkan dan mendorong ke GitHub. Contohnya:

git add .
git commit -m "<some-message>"
git push origin main

Bagaimana sampel Django dikonfigurasi untuk berjalan di Azure App Service?

Catatan

Jika Anda mengikuti tutorial ini dengan aplikasi Anda sendiri, lihat deskripsi file requirements.txt di setiap file README.md proyek (Flask, Django) untuk melihat paket apa yang dibutuhkan.

Aplikasi sampel Django mengonfigurasi pengaturan dalam file azureproject/production.py sehingga dapat berjalan di Azure App Service. Perubahan ini umum untuk menyebarkan Django ke produksi, dan tidak khusus untuk App Service.

  • Django memvalidasi header HTTP_HOST dalam permintaan masuk. Kode sampel menggunakan WEBSITE_HOSTNAME variabel lingkungan di App Service untuk menambahkan nama domain aplikasi ke pengaturan ALLOWED_HOSTS Django.

    # Configure the domain name using the environment variable
    # that Azure automatically creates for us.
    ALLOWED_HOSTS = [os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
    
  • Django tidak mendukung penyajian file statis dalam produksi. Untuk tutorial ini, Anda menggunakan WhiteNoise untuk mengaktifkan penyajian file. Paket WhiteNoise sudah diinstal dengan requirements.txt, dan middleware-nya ditambahkan ke daftar.

    
    # WhiteNoise configuration
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        # Add whitenoise middleware after the security middleware
        'whitenoise.middleware.WhiteNoiseMiddleware',
    

    Kemudian pengaturan file statis dikonfigurasi sesuai dengan dokumentasi Django.

    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
    

Untuk informasi selengkapnya, lihat Pengaturan produksi untuk aplikasi Django.

Langkah berikutnya

Lanjutkan ke tutorial berikutnya untuk mempelajari cara mengamankan aplikasi Anda dengan domain dan sertifikat kustom.

Pelajari cara Azure App Service menjalankan aplikasi Python: