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.
Meninjau log Dan pengaturan konfigurasi Azure Container Apps dapat mengungkapkan masalah yang mendasar jika aplikasi kontainer Anda tidak berulah dengan benar. Gunakan panduan berikut untuk membantu Anda menemukan dan melihat detail tentang aplikasi kontainer Anda.
Skenario
Tabel berikut ini mencantumkan masalah yang mungkin Anda temui saat menggunakan Azure Container Apps, dan tindakan yang dapat Anda lakukan untuk mengatasinya.
| Skenario | Deskripsi | Tindakan |
|---|---|---|
| Semua skenario |
Menampilkan log Gunakan Diagnosis dan selesaikan masalah |
|
| Kesalahan saat menyebarkan revisi baru | Anda menerima pesan kesalahan saat mencoba menyebarkan revisi baru. | Verifikasi bahwa Container Apps dapat mengambil citra kontainer Anda |
| Penyediaan membutuhkan waktu terlalu lama | Setelah Anda menerapkan revisi baru, revisi tersebut memiliki Status Provision dari Provisioning dan Status Berjalan dari Pemrosesan tanpa batas waktu. | Memverifikasi probes kesehatan dikonfigurasi dengan benar |
| Revisi terdegradasi | Revisi baru membutuhkan waktu lebih dari 10 menit untuk penyediaan. Ini akhirnya memiliki status PemberianDisediakan, tetapi status BerjalanTerdegradasi. Tooltip status berjalan dibaca Details: Deployment Progress Deadline Exceeded. 0/1 replicas ready. |
Memverifikasi probes kesehatan dikonfigurasi dengan benar |
| Permintaan ke titik akhir gagal | Titik akhir aplikasi kontainer tidak merespons permintaan. | Meninjau konfigurasi ingress |
| Permintaan mengembalikan status 403 | Titik akhir aplikasi kontainer merespons permintaan dengan kesalahan HTTP 403 (akses ditolak). | Pastikan konfigurasi jaringan sudah benar |
| Respons tidak seperti yang diharapkan | Titik akhir aplikasi kontainer merespons permintaan, tetapi responsnya tidak seperti yang diharapkan. |
Pastikan lalu lintas telah dirutekan ke revisi yang benar Verifikasi bahwa Anda menggunakan tag unik saat menyebarkan gambar ke registri kontainer |
| Kesalahan parameter yang hilang | Anda menerima pesan kesalahan tentang parameter yang hilang saat menjalankan az containerapp perintah di Azure CLI, atau menjalankan cmdlet dari Az.App modul di Azure PowerShell. |
Verifikasi versi terbaru ekstensi Azure Container Apps diinstal |
| Fitur pratinjau tidak tersedia |
Fitur pratinjau tidak tersedia saat Anda menjalankan az containerapp perintah di Azure CLI. |
Memverifikasi ekstensi Azure Container Apps memungkinkan fitur pratinjau |
| Kesalahan sinkronisasi rahasia Key Vault | Anda tidak dapat mengambil atau menyinkronkan rahasia dari Azure Key Vault. | Memecahkan masalah rujukan Key Vault |
| Menghapus aplikasi atau lingkungan Anda tidak berfungsi | Masalah ini sering disertai dengan pesan seperti provisioningState: ScheduledForDelete. | Menghapus VNet terkait secara manual |
Lihat log
Salah satu langkah pertama yang harus diambil saat Anda mencari masalah dengan aplikasi kontainer Anda adalah melihat pesan log. Anda dapat melihat output log konsol dan sistem. Log konsol aplikasi kontainer Anda menangkap streaming aplikasi stdout dan stderr. Container Apps menghasilkan log sistem untuk kejadian tingkat layanan.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bagian Sumber Daya , pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, perluas Pemantauan dan pilih Aliran log (bukan Log).
- Jika halaman Aliran log mengatakan Revisi ini diskalakan ke nol,, pilih tombol Buka Manajemen Revisi. Sebarkan revisi baru yang diskalakan dengan jumlah replika minimal 1. Untuk informasi selengkapnya, lihat Penskalaan di Azure Container Apps.
- Di halaman Aliran log, atur Log ke Konsol atau Sistem.
Gunakan alat diagnosis dan selesaikan masalah
Anda dapat menggunakan alat diagnosis dan pemecahan masalah untuk menemukan masalah dengan kesehatan, konfigurasi, dan performa aplikasi kontainer Anda.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bagian Sumber Daya , pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, pilih Diagnosis dan selesaikan masalah.
- Di halaman Diagnosis dan selesaikan masalah , pilih salah satu kategori Pemecahan Masalah.
- Pilih salah satu kategori di bilah navigasi untuk menemukan cara memperbaiki masalah dengan aplikasi kontainer Anda.
Memverifikasi aksesibilitas gambar kontainer
Jika Anda menerima pesan kesalahan saat mencoba menyebarkan revisi baru, verifikasi bahwa Container Apps dapat menarik gambar kontainer Anda.
- Pastikan firewall lingkungan kontainer Anda tidak memblokir akses ke registri kontainer. Untuk informasi selengkapnya, lihat Mengontrol lalu lintas keluar dengan rute yang ditentukan pengguna.
- Jika VNet Anda yang sudah ada menggunakan server DNS kustom alih-alih server DNS default yang disediakan Azure, verifikasi bahwa server DNS Anda dikonfigurasi dengan benar dan pencarian DNS dari registri kontainer tidak gagal. Untuk informasi selengkapnya, harap lihat DNS.
- Jika Anda menggunakan fitur build cloud Container Apps untuk menghasilkan gambar kontainer untuk Anda (lihat Jalur kode-ke-cloud untuk Azure Container Apps, gambar Anda tidak dapat diakses secara publik, sehingga bagian ini tidak berlaku.
Untuk kontainer Docker yang dapat berjalan sebagai aplikasi konsol, verifikasi bahwa gambar Anda dapat diakses secara publik dengan menjalankan perintah berikut dalam prompt perintah yang ditingkatkan. Sebelum Anda menjalankan perintah ini, ganti tempat penampung yang dikelilingi oleh <> dengan nilai Anda.
docker run --rm <YOUR_CONTAINER_IMAGE>
Verifikasi bahwa Docker menjalankan gambar Anda tanpa melaporkan kesalahan apa pun. Jika Anda menjalankan Docker di Windows, pastikan Anda menjalankan Docker Engine.
Jika gambar Anda tidak dapat diakses secara publik, Anda mungkin menerima kesalahan berikut.
docker: Error response from daemon: pull access denied for <YOUR_CONTAINER_IMAGE>, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.
Untuk informasi selengkapnya, lihat Jaringan di lingkungan Azure Container Apps.
Meninjau konfigurasi ingress
Pengaturan akses masuk aplikasi kontainer Anda diberlakukan melalui serangkaian aturan yang mengatur perutean lalu lintas eksternal dan internal ke aplikasi kontainer Anda. Jika Anda tidak dapat tersambung ke aplikasi kontainer, tinjau pengaturan ingress ini untuk memastikan pengaturan ingress Anda tidak memblokir permintaan.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bawah Sumber Daya, pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, perluas Pengaturan dan pilih Ingress.
| Masalah | Perbuatan |
|---|---|
| Apakah ingress diaktifkan? | Pastikan kotak Diaktifkan dicentang. |
| Apakah Anda ingin memperbolehkan akses eksternal? | Verifikasi bahwa Lalu Lintas Ingress diatur ke Menerima lalu lintas dari mana pun. Jika aplikasi kontainer Anda tidak mendengarkan lalu lintas HTTP, atur Lalu Lintas Masuk (Ingress) dengan Dibatasi pada Lingkungan Aplikasi Kontainer. |
| Apakah klien Anda menggunakan HTTP atau TCP untuk mengakses aplikasi kontainer Anda? | Verifikasikan tipe Ingress diatur ke protokol yang benar (HTTP atau TCP). |
| Apakah klien Anda mendukung mTLS? | Verifikasi bahwa Mode sertifikat klien diatur ke Wajib hanya jika klien Anda mendukung mTLS. Untuk informasi selengkapnya, lihat mengonfigurasi autentikasi sertifikat klien. |
| Apakah klien Anda menggunakan HTTP/1 atau HTTP/2? | Pastikan Transport diatur ke versi HTTP yang benar (HTTP/1 atau HTTP/2). |
| Apakah port target diatur dengan benar? | Verifikasi Target port disetel ke port yang sama yang digunakan oleh aplikasi kontainer Anda, atau port yang sama yang diekspos oleh Dockerfile aplikasi kontainer Anda. |
| Apakah alamat IP klien Anda ditolak? | Jika Mode Pembatasan Keamanan IP tidak diatur ke Izinkan semua lalu lintas, pastikan bahwa klien Anda tidak menggunakan alamat IP yang masuk daftar ditolak. |
Untuk informasi selengkapnya, lihat Ingress di Azure Container Apps.
Memverifikasi konfigurasi jaringan
Pemecah masalah rekursif Azure menggunakan alamat 168.63.129.16 IP untuk menyelesaikan permintaan.
- Jika VNet Anda menggunakan server DNS kustom alih-alih server DNS default yang disediakan Azure, konfigurasikan server DNS Anda untuk meneruskan kueri DNS yang tidak terselesaikan ke
168.63.129.16. - Saat mengonfigurasi NSG atau firewall Anda, jangan memblokir alamat
168.63.129.16.
Untuk informasi selengkapnya, lihat Jaringan di lingkungan Azure Container Apps.
Memverifikasi konfigurasi uji kesehatan
Untuk semua jenis pemeriksaan kesehatan (keaktifan, kesiapan, dan startup) yang menggunakan TCP sebagai transportasinya, verifikasi nomor port mereka cocok dengan port target ingress yang Anda konfigurasi untuk aplikasi kontainer Anda.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bawah Sumber Daya, pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, perluas Aplikasi dan pilih Kontainer.
- Di halaman Kontainer, pilih Probe kesehatan.
- Perluas pemeriksaan Liveness, pemeriksaan Readiness, dan pemeriksaan startup.
- Untuk setiap pemeriksaan, pastikan nilai Port sudah benar.
Perbarui nilai Port sebagai berikut:
- Pilih Edit dan sebarkan untuk membuat revisi baru.
- Di halaman Buat dan sebarkan revisi baru, pilih kotak centang di samping gambar kontainer Anda dan pilih Edit.
- Di jendela Edit kontainer, pilih Pemeriksaan kesehatan.
- Perluas pemeriksaan Liveness, pemeriksaan Readiness, dan pemeriksaan startup.
- Untuk setiap sonda, edit nilai Port.
- Pilih tombol Simpan.
- Di halaman Buat dan sebarkan revisi baru, pilih tombol Buat .
Mengonfigurasi pemeriksaan kesehatan untuk waktu mulai yang diperpanjang
Jika ingress diaktifkan, probe default berikut secara otomatis ditambahkan ke kontainer aplikasi utama jika tidak ada yang ditentukan untuk tiap jenisnya.
Berikut adalah nilai default untuk setiap jenis probe.
| Properti | Perusahaan rintisan | Kesiapan | Keaktivaan |
|---|---|---|---|
| Protokol | PKT | PKT | PKT |
| Pelabuhan | Port tujuan Ingress | Port tujuan Ingress | Port tujuan Ingress |
| Waktu habis | 3 detik | 5 detik | N/a |
| Periode | 1 detik | 5 detik | N/a |
| Penundaan awal | 1 detik | 3 detik | N/a |
| Ambang keberhasilan | 1 | 1 | N/a |
| Ambang kegagalan | 240 | 48 | N/a |
Jika aplikasi kontainer Anda membutuhkan waktu lama untuk memulai (yang umum di Java), Anda mungkin perlu menyesuaikan properti keaktifan dan pemeriksaan Initial delay seconds yang sesuai. Anda dapat melihat log untuk melihat waktu mulai umum untuk aplikasi kontainer Anda.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bawah Sumber Daya, pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, perluas Aplikasi dan pilih Kontainer.
- Di halaman Kontainer, pilih Probe kesehatan.
- Pilih Edit dan sebarkan untuk membuat revisi baru.
- Di halaman Buat dan sebarkan revisi baru, pilih kotak centang di samping gambar kontainer Anda dan pilih Edit.
- Di jendela Edit kontainer, pilih Pemeriksaan kesehatan.
- Perbanyak Liveness Probes.
- Jika Aktifkan pemeriksaan keaktifan dipilih, tingkatkan nilai untuk Detik penundaan awal.
- Perluas pemeriksaan Kesiapan.
- Jika Aktifkan pemeriksaan kesiapan dipilih, tingkatkan nilai untuk Detik penundaan awal.
- Pilih Simpan.
- Di halaman Buat dan sebarkan revisi baru, pilih tombol Buat .
Anda kemudian dapat melihat log untuk melihat apakah aplikasi kontainer Anda berhasil dimulai.
Untuk informasi selengkapnya, lihat Gunakan Probe Kesehatan.
Verifikasi lalu lintas dirutekan ke revisi yang benar
Jika aplikasi kontainer Anda tidak berperilaku seperti yang diharapkan, masalahnya mungkin adalah bahwa permintaan dirutekan ke revisi yang ketinggalan jaman.
- Masuk ke portal Azure.
- Di bilah Pencarian , masukkan nama aplikasi kontainer Anda.
- Di bawah Sumber Daya, pilih nama aplikasi kontainer Anda.
- Di bilah navigasi, perluas Aplikasi dan pilih Revisi.
Jika Mode Revisi diatur ke Single, semua lalu lintas dirutekan ke revisi terbaru Anda secara default. Tab Revisi aktif seharusnya hanya mencantumkan satu revisi, dengan nilai lalu lintas .100%
Jika Mode Revisi diatur ke Multiple, verifikasi bahwa Anda tidak mengalihkan lalu lintas ke revisi yang kadaluarsa.
Untuk informasi selengkapnya tentang mengonfigurasi pemisahan lalu lintas, lihat Pemisahan lalu lintas di Azure Container Apps.
Verifikasi versi terbaru ekstensi Azure Container Apps diinstal
Jika Anda menerima kesalahan tentang parameter yang hilang saat menjalankan az containerapp perintah di Azure CLI atau cmdlet dari Az.App modul di Azure PowerShell, pastikan Anda memiliki versi terbaru ekstensi Azure Container Apps yang terinstal.
az extension add --name containerapp --upgrade
Memverifikasi ekstensi Azure Container Apps memungkinkan fitur pratinjau
Jika fitur pratinjau tidak tersedia saat Anda menjalankan az containerapp perintah di Azure CLI, aktifkan fitur pratinjau pada ekstensi Azure Container Apps.
az extension add --name containerapp --upgrade --allow-preview true
Menghapus VNet yang digunakan secara manual oleh lingkungan Azure Container Apps
Jika Anda menerima pesan provisioningState: ScheduledForDelete, tetapi lingkungan Anda gagal dihapus, pastikan untuk menghapus VNet terkait secara manual.
Identifikasi VNet yang digunakan oleh lingkungan yang coba Anda hapus. <Ganti PLACEHOLDERS> dengan nilai Anda.
az containerapp env show --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT>Dalam output, cari
infrastructureSubnetIddan catat ID VNet. Contoh ID VNet adalahvNet::myVNet.id.Hapus VNet secara manual:
az network vnet delete --resource-group <RESOURCE_GROUP> --name <VNET_ID>Hapus lingkungan Azure Container Apps:
az containerapp env delete --resource-group <RESOURCE_GROUP> --name <ENVIRONMENT> --yes