Bagikan melalui


Tutorial: Pelajari konsep gambaran umum untuk menyebarkan aplikasi web Python di Azure Container Apps

Seri tutorial ini menunjukkan kepada Anda cara membuat kontainer aplikasi web Python dan menyebarkannya ke Azure Container Apps. Contoh aplikasi web dikontainerisasi, dan gambar Docker disimpan di Azure Container Registry. Azure Container Apps dikonfigurasi untuk menarik gambar Docker dari Container Registry dan membuat kontainer. Aplikasi sampel tersambung ke azure Database for PostgreSQL untuk menunjukkan komunikasi antara Container Apps dan sumber daya Azure lainnya.

Ada beberapa opsi untuk membangun dan menyebarkan aplikasi web Python cloud-native dan kontainer di Azure. Seri tutorial ini mencakup Azure Container Apps. Container Apps baik untuk menjalankan kontainer tujuan umum, terutama untuk aplikasi yang mencakup banyak layanan mikro yang disebarkan dalam kontainer.

Dalam seri tutorial ini, Anda membuat satu kontainer. Untuk menyebarkan aplikasi web Python yang terkontainer ke Azure App Service, lihat aplikasi web Python terkontainer di Azure dengan MongoDB.

Prosedur dalam seri tutorial ini memandu Anda untuk menyelesaikan tugas-tugas ini:

  • Buat gambar Docker dari aplikasi web Python dan simpan gambar di Azure Container Registry.
  • Konfigurasikan Azure Container Apps untuk menghosting gambar Docker.
  • Siapkan GitHub Actions untuk memperbarui kontainer dengan gambar Docker baru yang dipicu oleh perubahan pada repositori GitHub Anda. Langkah ini bersifat opsional.
  • Siapkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) aplikasi web Python ke Azure.

Di bagian pertama seri ini, Anda mempelajari konsep dasar untuk menyebarkan aplikasi web Python di Azure Container Apps.

Gambaran umum layanan

Diagram berikut menunjukkan bagaimana Anda akan menggunakan lingkungan lokal, repositori GitHub, dan layanan Azure dalam seri tutorial ini.

Diagram lingkungan dan layanan untuk menyebarkan aplikasi web Python di Azure Container Apps.

Diagram mencakup komponen-komponen ini:

  • Azure Container Apps:

    Azure Container Apps memungkinkan Anda menjalankan layanan mikro dan aplikasi kontainer pada platform tanpa server. Platform tanpa server berarti Anda menikmati manfaat menjalankan kontainer dengan konfigurasi minimal. Dengan Azure Container Apps, aplikasi Anda dapat menskalakan secara dinamis berdasarkan karakteristik seperti lalu lintas HTTP, pemrosesan berbasis peristiwa, atau beban CPU atau memori.

    Container Apps menarik gambar Docker dari Azure Container Registry. Perubahan pada citra kontainer memicu pembaruan pada kontainer yang sedang disebarkan. Anda juga dapat mengonfigurasi GitHub Actions untuk memicu pembaruan.

  • Azure Container Registry:

    Azure Container Registry memungkinkan Anda bekerja dengan gambar Docker di Azure. Karena Container Registry dekat dengan penyebaran Anda di Azure, Anda memiliki kontrol atas akses. Anda dapat menggunakan grup dan izin Microsoft Entra untuk mengontrol akses ke gambar Docker.

    Dalam seri tutorial ini, sumber registri adalah Azure Container Registry. Tetapi Anda juga dapat menggunakan Docker Hub atau registri privat dengan modifikasi kecil.

  • Azure Database for PostgreSQL :

    Kode sampel menyimpan data aplikasi dalam database PostgreSQL. Aplikasi kontainer terhubung ke PostgreSQL dengan menggunakan identitas terkelola yang ditetapkan pengguna. Informasi koneksi disimpan dalam variabel lingkungan yang dikonfigurasi secara eksplisit atau melalui konektor layanan Azure .

  • GitHub:

    Kode sampel untuk seri tutorial ini ada dalam repositori GitHub yang Anda fork dan kloning secara lokal. Untuk menyiapkan alur kerja CI/CD dengan GitHub Actions, Anda memerlukan akun GitHub.

    Anda masih dapat mengikuti seri tutorial ini tanpa akun GitHub, jika Anda bekerja secara lokal atau di Azure Cloud Shell untuk membangun gambar kontainer dari repositori kode sampel.

Revisi dan CI/CD

Untuk membuat perubahan kode dan mendorongnya ke kontainer, Anda membuat gambar Docker baru dengan perubahan Anda. Kemudian, Anda mengunggah image ke Container Registry dan membuat revisi baru dari aplikasi kontainer.

Untuk mengotomatiskan proses ini, langkah opsional dalam seri tutorial menunjukkan kepada Anda cara membangun alur CI/CD dengan menggunakan GitHub Actions. Jalur secara otomatis membangun dan menyebarkan kode Anda ke Aplikasi Kontainer setiap kali commit baru didorong ke repositori GitHub Anda.

Autentikasi dan keamanan

Dalam seri tutorial ini, Anda membuat gambar kontainer Docker langsung di Azure dan menyebarkannya ke Azure Container Apps. Container Apps berjalan dalam konteks lingkungan , yang didukung oleh jaringan virtual Azure . Jaringan virtual adalah blok penyusun dasar untuk jaringan privat Anda di Azure. Container Apps memungkinkan Anda mengekspos aplikasi kontainer ke web publik dengan mengaktifkan ingress.

Untuk menyiapkan CI/CD, Anda mengotorisasi Azure Container Apps sebagai aplikasi OAuth untuk akun GitHub Anda. Sebagai aplikasi OAuth, Container Apps menulis file alur kerja GitHub Actions ke repositori Anda dengan informasi tentang sumber daya dan pekerjaan Azure untuk memperbaruinya. Alur kerja memperbarui sumber daya Azure dengan menggunakan kredensial perwakilan layanan Microsoft Entra (atau yang sudah ada) dengan akses berbasis peran untuk Container Apps dan nama pengguna dan kata sandi untuk Azure Container Registry. Kredensial disimpan dengan aman di repositori GitHub Anda.

Terakhir, contoh aplikasi web dalam seri tutorial ini menyimpan data dalam database PostgreSQL. Kode sampel terhubung ke PostgreSQL melalui string koneksi. Saat aplikasi berjalan di Azure, aplikasi terhubung ke database PostgreSQL dengan menggunakan identitas terkelola yang ditetapkan pengguna. Kode ini menggunakan DefaultAzureCredential untuk memperbarui kata sandi secara dinamis dalam string koneksi dengan token akses Microsoft Entra selama runtime. Mekanisme ini mencegah kebutuhan untuk mengodekan kata sandi dalam string koneksi atau variabel lingkungan, dan menyediakan lapisan keamanan tambahan.

Seri tutorial ini memandu Anda dalam membuat identitas terkelola dan memberikannya peran serta izin PostgreSQL yang sesuai, sehingga dapat mengakses dan memperbarui database. Selama konfigurasi Container Apps, seri tutorial memandul Anda mengonfigurasi identitas terkelola pada aplikasi dan menyiapkan variabel lingkungan yang berisi informasi koneksi untuk database. Anda juga dapat menggunakan konektor layanan Azure untuk menyelesaikan hal yang sama.

Prasyarat

Untuk menyelesaikan seri tutorial ini, Anda perlu:

  • Akun Azure tempat Anda dapat membuat:

    • Instans Azure Container Registry.
    • Lingkungan Azure Container Apps.
    • Instans Azure Database untuk PostgreSQL.
  • Visual Studio Code atauAzure CLI , bergantung pada alat apa yang Anda gunakan:

  • Paket Python:

Aplikasi contoh

Aplikasi sampel Python adalah aplikasi ulasan restoran yang menyimpan restoran dan meninjau data di PostgreSQL. Di akhir seri tutorial, Anda akan memiliki aplikasi ulasan restoran yang disebarkan dan berjalan di Azure Container Apps yang terlihat seperti cuplikan layar berikut.

Cuplikan layar aplikasi sampel yang dibuat dari aplikasi web kontainer Python.

Langkah berikutnya