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.
Artikel ini adalah bagian dari seri tutorial tentang cara membuat kontainer dan menyebarkan aplikasi web Python untuk Azure Container Apps. Container Apps memungkinkan Anda menyebarkan aplikasi kontainer tanpa mengelola infrastruktur yang kompleks.
Dalam tutorial ini, Anda:
- Kontainerisasi aplikasi web sampel Python (Django atau Flask) dengan membangun gambar kontainer di cloud.
- Sebarkan gambar kontainer ke Azure Container Apps.
- Tentukan variabel lingkungan yang memungkinkan aplikasi kontainer tersambung ke Azure Database for PostgreSQL - Instans Server Fleksibel, tempat aplikasi sampel menyimpan data.
Diagram berikut menyoroti tugas dalam tutorial ini: membangun dan menyebarkan gambar kontainer.
Prasyarat
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Memulai.
Anda dapat menjalankan perintah Azure CLI di Azure Cloud Shell atau di stasiun kerja dengan Azure CLI terinstal.
Jika Anda menjalankan secara lokal, ikuti langkah-langkah ini untuk masuk dan menginstal modul yang diperlukan untuk tutorial ini:
Masuk ke Azure dan autentikasi, jika perlu:
az login
Pastikan Anda menjalankan versi terbaru Azure CLI:
az upgrade
Instal atau tingkatkan containerapp
dan rdbms-connect ekstensi Azure CLI dengan menggunakan perintah tambahkan ekstensi az: az extension add --name containerapp --upgrade az extension add --name rdbms-connect --upgrade
Catatan
Untuk mencantumkan ekstensi yang diinstal pada sistem Anda, Anda dapat menggunakan perintah az extension list. Misalnya:
az extension list --query [].name --output tsv
Mendapatkan aplikasi sampel
Fork dan menyalin kode sampel ke lingkungan pengembang Anda:
Buka repositori GitHub aplikasi sampel (Django atau Flask) dan pilih Fork.
Ikuti langkah-langkah untuk membuat fork repositori ke akun GitHub Anda. Anda juga dapat mengunduh repositori kode langsung ke komputer lokal Anda tanpa forking atau akun GitHub. Tetapi jika Anda menggunakan metode unduhan, Anda tidak akan dapat mengatur integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) dalam tutorial berikutnya dalam seri ini.
Pada prompt perintah di konsol Anda, gunakan perintah klon git untuk mengkloning repositori fork ke folder python-container :
# Django git clone https://github.com/<github-username>/msdocs-python-django-azure-container-apps.git python-container # Flask # git clone https://github.com/<github-username>/msdocs-python-flask-azure-container-apps.git python-container
Ubah direktori:
cd python-container
Membuat gambar kontainer dari kode aplikasi web
Setelah mengikuti langkah-langkah ini, Anda akan memiliki instans Azure Container Registry yang berisi gambar kontainer Docker yang dibuat dari kode sampel.
Jika Anda menjalankan perintah di shell Git Bash di komputer Windows, masukkan perintah berikut sebelum melanjutkan:
#!/bin/bash export MSYS_NO_PATHCONV=1
Buat grup sumber daya dengan menggunakan perintah az group create:
#!/bin/bash RESOURCE_GROUP_NAME=<resource-group-name> LOCATION=<location> az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION
Buat registri kontainer dengan menggunakan perintah az acr create:
#!/bin/bash REGISTRY_NAME=<registry-name> #The name that you use for *\<registry-name>* must be unique within Azure, and it must contain 5 to 50 alphanumeric characters. az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $REGISTRY_NAME \ --sku Basic \ --admin-enabled true
Masuk ke registri dengan menggunakan perintah az acr login:
az acr login --name $REGISTRY_NAME
Perintah menambahkan "azurecr.io" ke nama untuk membuat nama registri yang sepenuhnya memenuhi syarat. Jika proses masuk berhasil, pesan "Login Berhasil" akan muncul. Jika Anda mengakses registri dari langganan yang berbeda dengan langganan tempat Anda membuat registri tersebut, gunakan sakelar
--suffix
.Jika proses masuk gagal, pastikan daemon Docker berjalan di sistem Anda.
Buat gambar dengan menggunakan perintah az acr build.
#!/bin/bash az acr build \ --registry $REGISTRY_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --image pythoncontainer:latest .
Pertimbangan ini berlaku:
Titik (
.
) di akhir perintah menunjukkan lokasi kode sumber yang akan dibangun. Jika Anda tidak menjalankan perintah ini di direktori akar aplikasi sampel, tentukan jalur ke kode.Jika Anda menjalankan perintah di Azure Cloud Shell, gunakan
git clone
untuk terlebih dahulu menarik repositori ke lingkungan Cloud Shell. Kemudian ubah direktori menjadi akar proyek sehingga titik (.
) ditafsirkan dengan benar.Jika Anda meninggalkan
-t
opsi (sama dengan--image
) , perintah mengantrekan build konteks lokal tanpa mendorongnya ke registri. Membangun tanpa mendorong dapat berguna untuk memeriksa apakah gambar dibangun.
Konfirmasikan bahwa citra kontainer dibuat dengan menggunakan perintah daftar repositori az acr.
az acr repository list --name $REGISTRY_NAME
Catatan
Langkah-langkah di bagian ini membuat registri kontainer di tingkat layanan Dasar. Tingkat ini dioptimalkan untuk biaya, dengan fitur dan throughput yang disesuaikan untuk skenario pengembang, dan cocok untuk persyaratan tutorial ini. Dalam skenario produksi, Anda kemungkinan besar akan menggunakan tingkat layanan Standar atau Premium. Level-level ini menyediakan tingkat penyimpanan dan laju data yang ditingkatkan.
Untuk mempelajari selengkapnya, lihat Azure Container Registry tingkat layanan. Untuk informasi tentang harga, lihat harga untuk Azure Container Registry.
Membuat instans Server Fleksibel PostgreSQL
Aplikasi sampel (Django atau Flask) menyimpan data ulasan restoran dalam database PostgreSQL. Dalam langkah-langkah ini, Anda membuat server yang akan berisi database.
Gunakan perintah az postgres flexible-server create untuk membuat server PostgreSQL di Azure. Tidak jarang perintah ini berjalan selama beberapa menit sebelum selesai.
#!/bin/bash ADMIN_USERNAME=demoadmin ADMIN_PASSWORD=<admin-password> # Use a strong password that meets the requirements for PostgreSQL. POSTGRES_SERVER_NAME=<postgres-server-name> az postgres flexible-server create \ --resource-group $RESOURCE_GROUP_NAME \ --name $POSTGRES_SERVER_NAME \ --location $LOCATION \ --admin-user $ADMIN_USERNAME \ --admin-password $ADMIN_PASSWORD \ --version 16 \ --tier Burstable \ --sku-name Standard_B1ms \ --public-access 0.0.0.0 \ --microsoft-entra-auth Enabled \ --storage-size 32 \ --backup-retention 7 \ --high-availability Disabled \ --yes
Gunakan nilai-nilai ini:
<postgres-server-name>: Nama server database PostgreSQL. Nama ini harus unik di seluruh Azure. Titik akhir server
https://<postgres-server-name>.postgres.database.azure.com
. Karakter yang diizinkanA
keZ
,0
ke9
, dan tanda hubung (-
).<lokasi>: Gunakan lokasi yang sama dengan yang Anda gunakan untuk aplikasi web. <lokasi> adalah salah satu nilai lokasi Azure
Name
dari output perintahaz account list-locations -o table
.<nama pengguna admin>: Nama pengguna untuk akun administrator. Ini tidak boleh
azure_superuser
,admin
,administrator
,root
,guest
, ataupublic
. Gunakandemoadmin
untuk tutorial ini.< > kata sandi admin : Kata sandi pengguna administrator. Harus berisi karakter 8 hingga 128 dari tiga kategori berikut: huruf besar bahasa Inggris, huruf kecil bahasa Inggris, angka, dan karakter nonalfanumerik.
Penting
Saat Anda membuat nama pengguna atau kata sandi, tidak menggunakan karakter tanda dolar ($). Kemudian, ketika Anda membuat variabel lingkungan dengan nilai-nilai ini, karakter tersebut memiliki arti khusus dalam kontainer Linux yang Anda gunakan untuk menjalankan aplikasi Python.
--version
: Gunakan16
. Ini menentukan versi PostgreSQL yang akan digunakan untuk server.--tier
: GunakanBurstable
. Ini menentukan tingkat harga untuk server. Tingkat Burstable adalah opsi biaya yang lebih rendah untuk beban kerja yang tidak memerlukan CPU penuh terus menerus, dan cocok untuk persyaratan tutorial ini.--sku-name
: Nama tingkat harga dan konfigurasi komputasi; misalnya,Standard_B1ms
. Untuk informasi selengkapnya, lihat penentuan harga Azure Database untuk for PostgreSQL. Untuk mencantumkan tingkat yang tersedia, gunakanaz postgres flexible-server list-skus --location <location>
.--public-access
: Gunakan0.0.0.0
. Ini memungkinkan akses publik ke server dari layanan Azure apa pun, seperti Aplikasi Kontainer.--microsoft-entra-auth
: GunakanEnabled
. Ini memungkinkan autentikasi Microsoft Entra di server.--storage-size
: Gunakan32
. Ini menentukan ukuran penyimpanan dalam gigabyte (GB) untuk server. Minimumnya adalah 32 GB.--backup-retention
: Gunakan7
. Ini menentukan jumlah hari untuk menyimpan cadangan untuk server. Minimumnya adalah 7 hari.--high-availability
: GunakanDisabled
. Ini menonaktifkan fitur high availability pada server. Ketersediaan tinggi tidak diperlukan untuk tutorial ini.--yes
: Ini menerima ketentuan penggunaan untuk server PostgreSQL.
Catatan
Jika Anda berencana untuk bekerja dengan server PostgreSQL dari stasiun kerja lokal Anda dengan menggunakan alat, Anda perlu menambahkan aturan firewall untuk alamat IP stasiun kerja Anda dengan menggunakan perintah az postgres flexible-server firewall-rule create.
Gunakan perintah az ad signed-in-user show untuk mendapatkan ID objek akun pengguna Anda. Anda menggunakan ID ini di perintah berikutnya.
#!/bin/bash CALLER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv) CALLER_DISPLAY_NAME=$(az ad signed-in-user show --query userPrincipalName -o tsv)
Gunakan perintah az postgres flexible-server ad-admin create untuk menambahkan akun pengguna Anda sebagai administrator Microsoft Entra di server PostgreSQL:
#!/bin/bash az postgres flexible-server microsoft-entra-admin create \ --server-name "$POSTGRES_SERVER_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --display-name "$CALLER_DISPLAY_NAME" \ --object-id "$CALLER_OBJECT_ID" \ --type User
Gunakan perintah az postgres flexible-server firewall-rule create untuk menambahkan aturan yang memungkinkan aplikasi web Anda mengakses server fleksibel PostgreSQL. Dalam perintah berikut, Anda mengonfigurasi firewall server untuk menerima koneksi dari stasiun kerja pengembangan Anda dengan menggunakan alamat IP publik Anda:
MY_IP=$(curl -s ifconfig.me) az postgres flexible-server firewall-rule create \ --name "$POSTGRES_SERVER_NAME" \ --resource-group "$RESOURCE_GROUP_NAME" \ --rule-name allow-my-ip \ --start-ip-address "$MY_IP" \ --end-ip-address "$MY_IP" ```
Catatan
Langkah-langkah di bagian ini membuat server PostgreSQL dengan satu vCore dan memori terbatas di tingkat harga Burstable. Tingkat Burstable adalah opsi biaya yang lebih rendah untuk beban kerja yang tidak memerlukan CPU penuh terus menerus, dan cocok untuk persyaratan tutorial ini. Untuk beban kerja produksi, Anda dapat meningkatkan ke tingkat harga Tujuan Umum atau Memori yang Dioptimalkan. Tingkatan ini memberikan performa yang lebih tinggi tetapi meningkatkan biaya.
Untuk mempelajari selengkapnya, lihat opsi Komputasi di Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi mengenai harga, lihat harga untuk Azure Database for PostgreSQL.
Membuat database di server
Pada titik ini, Anda memiliki server PostgreSQL. Di bagian ini, Anda membuat database di server.
Gunakan perintah az postgres flexible-server db create untuk membuat database bernama restaurants_reviews:
#!/bin/bash
DATABASE_NAME=restaurants_reviews
az postgres flexible-server db create \
--resource-group $RESOURCE_GROUP_NAME \
--server-name $POSTGRES_SERVER_NAME \
--database-name $DATABASE_NAME
Anda juga dapat menggunakan perintah az postgres flexible-server connect untuk menyambungkan ke database lalu bekerja dengan perintah psql . Saat Anda bekerja dengan psql, sering kali lebih mudah untuk menggunakan Azure Cloud Shell karena shell menyertakan semua dependensi untuk Anda.
Anda juga dapat menyambungkan ke server fleksibel Azure Database for PostgreSQL dan membuat database dengan menggunakan psql atau IDE yang mendukung PostgreSQL, seperti Azure Data Studio. Untuk langkah-langkah menggunakan psql, lihat Mengonfigurasi identitas terkelola pada database PostgreSQL nanti di artikel ini.
Membuat identitas terkelola yang ditetapkan pengguna
Buat identitas terkelola yang ditetapkan pengguna untuk digunakan sebagai identitas untuk aplikasi kontainer saat berjalan di Azure.
Catatan
Untuk membuat identitas terkelola yang ditetapkan pengguna, akun Anda memerlukan penetapan peran Managed Identity Contributor.
Gunakan perintah az identity create untuk membuat identitas terkelola yang ditetapkan pengguna:
UA_MANAGED_IDENTITY_NAME=<managed-identity-name> # Use a unique name for the managed identity, such as-"my-ua-managed-id".
az identity create \
--name $UA_MANAGED_IDENTITY_NAME
--resource-group $RESOURCE_GROUP_NAME
Mengonfigurasi identitas terkelola pada database PostgreSQL
Konfigurasikan identitas terkelola sebagai peran di server PostgreSQL lalu berikan izin yang diperlukan untuk database restaurants_reviews. Baik Anda menggunakan Azure CLI atau psql, Anda harus tersambung ke server Azure PostgreSQL dengan pengguna yang dikonfigurasi sebagai admin Microsoft Entra di instans server Anda. Hanya akun Microsoft Entra yang dikonfigurasi sebagai admin PostgreSQL yang dapat mengonfigurasi identitas terkelola dan peran admin Microsoft lainnya di server Anda.
Dapatkan token akses untuk akun Azure Anda dengan menggunakan perintah az account get-access-token. Anda menggunakan token akses di langkah berikutnya.
#!/bin/bash MY_ACCESS_TOKEN=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) echo $MY_ACCESS_TOKEN
Tambahkan identitas terkelola yang ditetapkan pengguna sebagai peran database di server PostgreSQL Anda dengan menggunakan perintah az postgres flexible-server execute:
#!/bin/bash az postgres flexible-server execute \ --name "$POSTGRES_SERVER_NAME" \ --admin-user "$CALLER_DISPLAY_NAME" \ --admin-password "$ACCESS_TOKEN" \ --database-name postgres \ --querytext "SELECT * FROM pgaadauth_create_principal('$UA_MANAGED_IDENTITY_NAME', false, false);"
Catatan
Jika Anda menjalankan perintah
az postgres flexible-server execute
di stasiun kerja lokal, pastikan Anda menambahkan aturan firewall untuk alamat IP stasiun kerja Anda. Anda dapat menambahkan aturan dengan menggunakan perintah az postgres flexible-server firewall-rule create. Persyaratan yang sama juga ada untuk perintah di langkah berikutnya.Berikan identitas terkelola yang ditetapkan pengguna izin yang diperlukan pada database restaurants_reviews dengan menggunakan perintah az postgres flexible-server execute berikut:
#!/bin/bash SQL_GRANTS=$(cat <<EOF GRANT CONNECT ON DATABASE $DATABASE_NAME TO "$UA_MANAGED_IDENTITY_NAME"; GRANT USAGE, CREATE ON SCHEMA public TO "$UA_MANAGED_IDENTITY_NAME"; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "$UA_MANAGED_IDENTITY_NAME"; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "$UA_MANAGED_IDENTITY_NAME"; EOF ) az postgres flexible-server execute \ --name "$POSTGRES_SERVER_NAME" \ --admin-user "$CALLER_DISPLAY_NAME" \ --admin-password "$MY_ACCESS_TOKEN" \ --database-name "$DATABASE_NAME" \ --querytext "$SQL_GRANTS"
Perintah Azure CLI ini tersambung ke database restaurants_reviews di server dan mengeluarkan perintah SQL berikut:
GRANT CONNECT ON DATABASE restaurants_reviews TO "my-ua-managed-id"; GRANT USAGE ON SCHEMA public TO "my-ua-managed-id"; GRANT CREATE ON SCHEMA public TO "my-ua-managed-id"; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "my-ua-managed-id"; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "my-ua-managed-id";
Menyebarkan aplikasi web ke Aplikasi Kontainer
Aplikasi kontainer disebarkan ke lingkungan Azure Container Apps , yang bertindak sebagai batas aman. Dalam langkah-langkah berikut, Anda membuat lingkungan dan kontainer di dalam lingkungan. Anda kemudian mengonfigurasi kontainer sehingga situs web terlihat secara eksternal.
Langkah-langkah ini memerlukan ekstensi Azure Container Apps, containerapp.
Buat lingkungan Container Apps dengan menggunakan perintah az containerapp env create:
#!/bin/bash APP_ENV_NAME=<app-env-name> # Use a unique name for the environment, such as "python-container-env". az containerapp env create \ --name python-container-env \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Dapatkan kredensial masuk untuk instans Azure Container Registry dengan menggunakan perintah az acr credential show:
#!/bin/bash REGISTRY_CREDS=$(az acr credential show -n "$REGISTRY_NAME" --query "[username,passwords[0].value]" -o tsv) REGISTRY_USERNAME=$(echo "$REGISTRY_CREDS" | head -n1) REGISTRY_PASSWORD=$(echo "$REGISTRY_CREDS" | tail -n1)
Anda menggunakan nama pengguna dan salah satu kata sandi yang dikembalikan dari output perintah saat Membuat aplikasi kontainer di langkah 5.
Gunakan perintah az identity show untuk mendapatkan ID klien dan ID sumber daya identitas terkelola yang ditetapkan pengguna:
UA_CLIENT_ID=$(az identity show \ --name "$UA_MANAGED_IDENTITY_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query clientId -o tsv) UA_RESOURCE_ID=$(az identity show \ --name "$UA_MANAGED_IDENTITY_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query id -o tsv)
Anda menggunakan nilai ID klien (GUID) dan ID sumber daya dari output perintah saat Anda membuat aplikasi kontainer di langkah 5. ID sumber daya memiliki formulir berikut:
/subscriptions/<subscription-id>/resourcegroups/pythoncontainer-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-ua-managed-id
.Jalankan perintah berikut untuk menghasilkan nilai kunci rahasia:
AZURE_SECRET_KEY=$(python -c 'import secrets; print(secrets.token_hex())')
Anda menggunakan nilai kunci rahasia untuk mengatur variabel lingkungan saat membuat aplikasi kontainer di langkah 5.
Catatan
Perintah yang ditunjukkan oleh langkah ini adalah untuk Bash shell. Tergantung pada lingkungan Anda, Anda mungkin perlu memanggil Python dengan menggunakan
python3
. Di Windows, Anda perlu mengapit perintah yang ada di parameter-c
dalam tanda kutip ganda daripada tanda kutip tunggal. Anda mungkin juga perlu memanggil Python dengan menggunakanpy
ataupy -3
, tergantung pada lingkungan Anda.Buat aplikasi kontainer di lingkungan dengan menggunakan perintah az containerapp create:
az containerapp create \ --name "$CONTAINER_APP_NAME" \ --resource-group "$RESOURCE_GROUP" \ --environment "$APP_ENV" \ --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME" \ --target-port "$TARGET_PORT" \ --ingress external \ --registry-server "$REGISTRY_NAME.azurecr.io" \ --registry-username "$REGISTRY_USERNAME" \ --registry-password "$REGISTRY_PASSWORD" \ --user-assigned "$UA_RESOURCE_ID" \ --env-vars \ DBHOST="$POSTGRES_SERVER_NAME" \ DBNAME="$DATABASE_NAME" \ DBUSER="$UA_MANAGED_IDENTITY_NAME" \ RUNNING_IN_PRODUCTION=1 \ AZURE_CLIENT_ID="$UA_CLIENT_ID" \ AZURE_SECRET_KEY="$AZURE_SECRET_KEY" ```
Hanya untuk Django, migrasikan dan buat skema database. (Di aplikasi sampel Flask, ini dilakukan secara otomatis, dan Anda dapat melewati langkah ini.)
Sambungkan dengan perintah az containerapp exec:
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME
Kemudian, pada prompt perintah shell, masukkan
python manage.py migrate
.Anda tidak perlu bermigrasi untuk revisi kontainer.
Uji situs web.
Perintah
az containerapp create
yang Anda masukkan sebelumnya menghasilkan URL aplikasi yang dapat Anda gunakan untuk menelusuri aplikasi. URL berakhir denganazurecontainerapps.io
. Buka URL di browser. Atau, Anda dapat menggunakan perintah az containerapp browse .
Berikut adalah contoh situs web sampel setelah penambahan restoran dan dua ulasan.
Memecahkan masalah penyebaran
Anda lupa URL aplikasi untuk mengakses situs web
Di portal Microsoft Azure:
- Buka halaman Gambaran Umum aplikasi kontainer dan cari URL Aplikasi.
Dalam Visual Studio Code:
- Buka tampilan Azure
(Ctrl+Shift+A) dan perluas langganan yang sedang Anda kerjakan. - Perluas node Aplikasi Kontainer, perluas lingkungan terkelola, klik kanan python-container-app, lalu pilih Telusuri. VS Code membuka browser dengan URL aplikasi.
Di Azure CLI:
- Gunakan perintah
az containerapp show -g pythoncontainer-rg -n python-container-app --query properties.configuration.ingress.fqdn
.
Di Visual Studio Code, tugas Build Image in Azure mengembalikan kesalahan
Jika Anda melihat pesan "Kesalahan: gagal mengunduh konteks. Periksa apakah URL salah di jendela Output di Visual Studio Code, lalu segarkan registri di ekstensi Docker. Untuk penyegaran, pilih ekstensi Docker, buka bagian Registri, temukan registri, dan pilih.
Jika Anda menjalankan tugas Build Image di Azure lagi, periksa apakah registri Anda dari eksekusi sebelumnya ada. Jika demikian, gunakan.
Di portal Microsoft Azure, kesalahan akses muncul selama pembuatan aplikasi kontainer
Kesalahan akses yang berisi "Tidak dapat mengakses nama<ACR>.azurecr.io'" terjadi saat kredensial admin pada instans Azure Container Registry dinonaktifkan.
Untuk memeriksa status admin di portal, buka instans Azure Container Registry Anda, pilih
Gambar kontainer Anda tidak muncul di instans Azure Container Registry
- Periksa output perintah Azure CLI atau output Visual Studio Code dan cari pesan untuk mengonfirmasi keberhasilan.
- Periksa apakah nama registri ditentukan dengan benar dalam perintah build Anda dengan Azure CLI atau di permintaan tugas Visual Studio Code.
- Pastikan kredensial Anda tidak kedaluwarsa. Misalnya, di Visual Studio Code, temukan registri target di ekstensi Docker dan refresh. Di Azure CLI, jalankan
az login
.
Situs web mengembalikan "Permintaan Buruk (400)"
Jika Anda mendapatkan kesalahan "Permintaan Buruk (400)", periksa variabel lingkungan PostgreSQL yang diteruskan ke kontainer. Kesalahan 400 sering menunjukkan bahwa kode Python tidak dapat terhubung ke instans PostgreSQL.
Kode sampel yang digunakan dalam tutorial ini memeriksa keberadaan variabel lingkungan kontainer RUNNING_IN_PRODUCTION
, yang dapat diatur ke nilai apa pun (seperti 1
).
Situs web mengembalikan "Tidak Ditemukan (404)"
- Periksa nilai Url Aplikasi pada halaman Gambaran Umum untuk kontainer. Jika URL aplikasi berisi kata "internal," ingress tidak diatur dengan benar.
- Periksa masuknya kontainer. Misalnya, di portal Azure, buka sumber daya Ingress dari kontainer. Pastikan HTTP Ingress diaktifkan dan Menerima lalu lintas dari mana saja dipilih.
Situs web tidak dapat dimuat, Anda mendapatkan "batas waktu streaming," atau tidak ada yang dikembalikan.
- Periksa catatan:
- Di portal Microsoft Azure, buka sumber daya manajemen revisi aplikasi kontainer dan periksa Status Provisi untuk kontainer:
- Jika status Penyediaan, tunggu hingga penyediaan selesai.
- Jika status Gagal, pilih revisi dan lihat log konsol. Pilih urutan kolom untuk menampilkan Time Generated, Stream_s, dan Log_s. Urutkan log menurut yang terbaru dan cari pesan Python
stderr
danstdout
di kolom Stream_s. Output Pythonprint
adalah pesanstdout
.
- Pada Azure CLI, gunakan perintah az containerapp logs show.
- Di portal Microsoft Azure, buka sumber daya manajemen revisi aplikasi kontainer dan periksa Status Provisi untuk kontainer:
- Jika Anda menggunakan kerangka kerja Django, periksa untuk melihat apakah tabel restaurants_reviews ada di database. Jika tidak, gunakan konsol untuk mengakses kontainer dan jalankan
python manage.py migrate
.