Membangun aplikasi web Python dalam kontainer di Azure

Artikel ini adalah bagian 3 dari seri tutorial 5 bagian tentang kontainerisasi dan penyebaran aplikasi web Python ke Azure App Service. Di bagian 2, Anda membangun dan menjalankan gambar kontainer secara lokal. Dalam artikel ini, Anda membuat aplikasi web Python yang sama langsung di Azure Container Registry tanpa menginstal Docker secara lokal. Membangun gambar di Azure biasanya lebih cepat dan lebih mudah daripada membangun secara lokal dan kemudian mendorongnya ke registri. Pembuatan gambar berbasis cloud juga menghilangkan kebutuhan Docker untuk berjalan di lingkungan pengembangan Anda.

Azure App Service memungkinkan Anda menyebarkan dan menjalankan aplikasi web kontainer menggunakan alur CI/CD dari platform seperti Docker Hub, Azure Container Registry, dan Azure DevOps. Setelah gambar Docker berada di Azure Container Registry, Anda dapat menyebarkannya ke Azure App Service.

Prasyarat

Sebelum memulai, pastikan Anda menyelesaikan bagian 2 dari seri tutorial ini, yang mencakup:

  • Mengkloning repositori sampel (Django atau Flask).
  • Membuat grup sumber daya untuk sumber daya Azure.
  • Menjalankan aplikasi kontainer secara lokal untuk memverifikasi bahwa aplikasi berfungsi.

Anda juga perlu:

Penting

Contoh Dockerfile digunakan python:3.8-slim sebagai gambar dasar. Python 3.8 mencapai akhir masa pakai pada Oktober 2024 dan tidak lagi menerima pembaruan keamanan. Perbarui Dockerfile Anda untuk digunakan python:3.12-slim atau python:3.13-slim untuk penyebaran produksi.

Diagram layanan ini menyoroti komponen yang tercakup dalam artikel ini.

Cuplikan layar dari layanan yang digunakan dalam Tutorial - Aplikasi Python Berkontainer di Azure dengan jalur dibangun di cloud disorot.

Membuat Azure Container Registry

Jika Anda sudah memiliki Azure Container Registry, lewati langkah ini dan lanjutkan ke langkah berikutnya. Jika tidak, buat Azure Container Registry baru dengan menggunakan Azure CLI.

Anda dapat menjalankan perintah Azure CLI di Azure Cloud Shell atau di lingkungan pengembangan lokal Anda dengan Azure CLI diinstal.

Nota

Gunakan nama yang sama seperti di bagian 2 dari seri tutorial ini.

  1. Buat registri kontainer Azure dengan menggunakan perintah az acr create.

    #!/bin/bash
    # Use the resource group that you created in part 2 of this tutorial series.
    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    # REGISTRY_NAME must be unique within Azure and contain 5-50 alphanumeric characters.
    # If the name is already taken, you'll receive an error. Choose a different name and retry.
    REGISTRY_NAME='msdocscontainerregistryname'
    
    echo "Creating Azure Container Registry $REGISTRY_NAME..."
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Standard
    

    Dalam output JSON dari perintah, temukan nilainya loginServer . Nilai ini mewakili nama registri yang sepenuhnya memenuhi syarat (semua huruf kecil) dan berisi nama registri.

    Contoh output:

    {
      "loginServer": "msdocscontainerregistryname.azurecr.io",
      "name": "msdocscontainerregistryname",
      ...
    }
    
  2. Jika Anda menggunakan Azure CLI di komputer lokal Anda, jalankan perintah az acr login untuk masuk ke registri kontainer.

    az acr login -n $REGISTRY_NAME
    

    Parameter -n menerima nama registri pendek (misalnya, msdocscontainerregistryname) atau nama registri yang sepenuhnya memenuhi syarat (msdocscontainerregistryname.azurecr.io). Perintah mengautentikasi Docker dengan Azure Container Registry menggunakan kredensial Azure CLI Anda.

    Output yang diharapkan:

    Login Succeeded
    

    Nota

    Jika Anda menggunakan Azure Cloud Shell, Anda tidak perlu menjalankan az acr login perintah karena sesi Cloud Shell Anda secara otomatis menangani autentikasi.

Membuat gambar di Azure Container Registry

Anda dapat menghasilkan gambar kontainer langsung di Azure melalui berbagai pendekatan:

  • Azure Cloud Shell memungkinkan Anda membuat gambar sepenuhnya di cloud, terlepas dari lingkungan lokal Anda.
  • Atau, Anda dapat menggunakan Visual Studio Code atau Azure CLI untuk membuat gambar di Azure dari pengaturan lokal Anda, tanpa memerlukan Docker untuk berjalan secara lokal.

Anda dapat menjalankan perintah Azure CLI di lingkungan pengembangan lokal Anda dengan menggunakan Azure CLI yang diinstal atau di Azure Cloud Shell.

  1. Di konsol, buka folder akar untuk repositori kloning Anda dari bagian 2 dari seri tutorial ini.

  2. Buat gambar kontainer dengan menggunakan perintah az acr build .

    Pengembangan lokal:

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    

    Azure Cloud Shell:

    Jika Anda menggunakan Azure Cloud Shell, tentukan URL repositori GitHub alih-alih jalur lokal (.):

    # For Django sample:
    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-django-container-web-app.git
    
    # For Flask sample:
    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.git
    

    Argumen akhir (. atau URL Git) adalah konteks build Docker—direktori yang berisi file Dockerfile dan aplikasi yang digunakan Docker untuk membangun gambar.

  3. Konfirmasikan gambar kontainer dibuat dengan menggunakan perintah az acr repository list .

    az acr repository list -n $REGISTRY_NAME
    

    Output yang diharapkan:

    [
      "msdocspythoncontainerwebapp"
    ]
    

Langkah berikutnya