Ingress di Azure Container Apps

Azure Container Apps memungkinkan Anda mengekspos aplikasi kontainer ke web publik, jaringan virtual (VNET), dan aplikasi kontainer lainnya dalam lingkungan Anda dengan mengaktifkan ingress. Pengaturan Ingress diberlakukan melalui sekumpulan aturan yang mengontrol perutean lalu lintas eksternal dan internal ke aplikasi kontainer Anda. Saat mengaktifkan ingress, Anda tidak perlu membuat Azure Load Balancer, alamat IP publik, atau sumber daya Azure lainnya untuk mengaktifkan permintaan HTTP masuk atau lalu lintas TCP.

Ingress mendukung:

Contoh konfigurasi ingress yang menunjukkan pemisahan ingress antara dua revisi:

Diagram showing an ingress configuration splitting traffic between two revisions.

Untuk detail konfigurasi, lihat Mengonfigurasi ingress.

ingress eksternal dan internal

Saat mengaktifkan ingress, Anda dapat memilih antara dua jenis ingress:

  • Eksternal: Menerima lalu lintas dari internet publik dan lingkungan internal aplikasi kontainer Anda.
  • Internal: Hanya memungkinkan akses internal dari dalam lingkungan aplikasi kontainer Anda.

Setiap aplikasi kontainer dalam lingkungan dapat dikonfigurasi dengan pengaturan ingress yang berbeda. Misalnya, dalam skenario dengan beberapa aplikasi layanan mikro, untuk meningkatkan keamanan, Anda mungkin memiliki satu aplikasi kontainer yang menerima permintaan publik dan meneruskan permintaan ke layanan latar belakang. Dalam skenario ini, Anda akan mengonfigurasi aplikasi kontainer yang menghadap publik dengan ingress eksternal dan aplikasi kontainer yang menghadap internal dengan ingress internal.

Jenis protokol

Container Apps mendukung dua protokol untuk masuk: HTTP dan TCP.

HTTP

Dengan ingress HTTP diaktifkan, aplikasi kontainer Anda memiliki:

  • Dukungan untuk penghentian TLS
  • Dukungan untuk HTTP/1.1 dan HTTP/2
  • Dukungan untuk WebSocket dan gRPC
  • Titik akhir HTTPS yang selalu menggunakan TLS 1.2 atau 1.3, dihentikan pada titik masuk
  • Titik akhir yang mengekspos port 80 (untuk HTTP) dan 443 (untuk HTTPS)
    • Secara default, permintaan HTTP ke port 80 secara otomatis dialihkan ke HTTPS pada 443
  • Nama domain yang sepenuhnya memenuhi syarat (FQDN)
  • Batas waktu permintaan adalah 240 detik

Header HTTP

Ingress HTTP menambahkan header untuk meneruskan metadata tentang permintaan klien ke aplikasi kontainer Anda. Misalnya, X-Forwarded-Proto header digunakan untuk mengidentifikasi protokol yang digunakan klien untuk terhubung dengan layanan Container Apps. Tabel berikut mencantumkan header HTTP yang relevan dengan ingress di Container Apps:

Header Deskripsi Values
X-Forwarded-Proto Protokol yang digunakan oleh klien untuk terhubung dengan layanan Container Apps. http atau https
X-Forwarded-For Alamat IP klien yang mengirim permintaan.
X-Forwarded-Host Nama host yang digunakan klien untuk terhubung dengan layanan Container Apps.
X-Forwarded-Client-Cert Sertifikat klien jika clientCertificateMode diatur. Daftar Hash, Cert, dan Chain yang dipisahkan titik koma. Misalnya: Hash=....;Cert="...";Chain="...";

TCP

Container Apps mendukung protokol berbasis TCP selain HTTP atau HTTPS. Misalnya, Anda dapat menggunakan ingress TCP untuk mengekspos aplikasi kontainer yang menggunakan protokol Redis.

Catatan

Ingress TCP eksternal hanya didukung untuk lingkungan Container Apps yang menggunakan VNET kustom.

Dengan ingress TCP diaktifkan, aplikasi kontainer Anda:

  • Dapat diakses oleh aplikasi kontainer lain di lingkungan yang sama melalui namanya (ditentukan oleh name properti di sumber daya Container Apps) dan nomor port yang diekspos.
  • Dapat diakses secara eksternal melalui nama domain yang sepenuhnya memenuhi syarat (FQDN) dan nomor port yang diekspos jika ingress diatur ke "eksternal".

Port TCP tambahan

Selain port HTTP/TCP utama untuk aplikasi kontainer, Anda mungkin mengekspos port TCP tambahan untuk mengaktifkan aplikasi yang menerima koneksi TCP pada beberapa port.

Catatan

Fitur ini memerlukan penggunaan versi pratinjau terbaru dari ekstensi CLI aplikasi kontainer.

Berikut ini berlaku untuk port TCP tambahan:

  • Port TCP tambahan hanya dapat berada di luar jika aplikasi itu sendiri diatur sebagai eksternal dan aplikasi kontainer menggunakan VNet kustom.
  • Setiap port TCP tambahan yang diekspos secara eksternal harus unik di seluruh lingkungan Container Apps. Ini termasuk semua port TCP tambahan eksternal, port TCP utama eksternal, dan port 80/443 yang digunakan oleh ingress HTTP bawaan. Jika port tambahan bersifat internal, port yang sama dapat dibagikan oleh beberapa aplikasi.
  • Jika port yang diekspos tidak disediakan, port yang diekspos akan default agar sesuai dengan port target.
  • Setiap port target harus unik, dan port target yang sama tidak dapat diekspos pada port yang diekspos yang berbeda.
  • Ada maksimal 5 port tambahan per aplikasi. Jika port tambahan diperlukan, buka permintaan dukungan.
  • Hanya port ingress utama yang mendukung fitur HTTP bawaan seperti CORS dan afinitas sesi. Saat menjalankan HTTP di atas port TCP tambahan, fitur bawaan ini tidak didukung.

Kunjungi artikel cara membuat artikel tentang masuk untuk informasi selengkapnya tentang cara mengaktifkan port tambahan untuk aplikasi kontainer Anda.

Nama domain

Anda dapat mengakses aplikasi dengan cara berikut:

  • Nama domain default yang sepenuhnya memenuhi syarat (FQDN): Setiap aplikasi di lingkungan Container Apps secara otomatis diberi FQDN berdasarkan akhiran DNS lingkungan. Untuk mengkustomisasi akhiran DNS lingkungan, lihat Akhiran DNS lingkungan kustom.
  • Nama domain kustom: Anda dapat mengonfigurasi domain DNS kustom untuk lingkungan Container Apps Anda. Untuk informasi selengkapnya, lihat Nama domain kustom dan sertifikat.
  • Nama aplikasi: Anda dapat menggunakan nama aplikasi untuk komunikasi antar aplikasi di lingkungan yang sama.

Untuk mendapatkan FQDN untuk aplikasi Anda, lihat Lokasi.

Batasan IP

Container Apps mendukung pembatasan IP untuk ingress. Anda dapat membuat aturan untuk mengonfigurasi alamat IP yang diizinkan atau ditolak akses ke aplikasi kontainer Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi pembatasan IP.

Autentikasi

Azure Container Apps menyediakan fitur autentikasi dan otorisasi bawaan untuk mengamankan aplikasi kontainer eksternal yang mendukung ingress Anda. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi di Azure Container Apps.

Anda dapat mengonfigurasi aplikasi untuk mendukung sertifikat klien (mTLS) untuk autentikasi dan enkripsi lalu lintas. Untuk informasi selengkapnya, lihat Mengonfigurasi sertifikat klien.

Untuk detail tentang cara menggunakan mTLS untuk enkripsi jaringan tingkat lingkungan, lihat gambaran umum jaringan.

Pemisahan lalu lintas

Containers Apps memungkinkan Anda membagi lalu lintas masuk antara revisi aktif. Saat Anda menentukan aturan pemisahan, Anda menetapkan persentase lalu lintas masuk untuk masuk ke revisi yang berbeda. Untuk informasi selengkapnya, lihat Pemisahan lalu lintas.

Afinitas Sesi

Afinitas sesi, juga dikenal sebagai sesi lengket, adalah fitur yang memungkinkan Anda merutekan semua permintaan HTTP dari klien ke replika aplikasi kontainer yang sama. Fitur ini berguna untuk aplikasi stateful yang memerlukan koneksi yang konsisten ke replika yang sama. Untuk informasi selengkapnya, lihat Afinitas sesi.

Cross origin resource sharing (CORS)

Secara default, setiap permintaan yang dibuat melalui browser dari halaman ke domain yang tidak cocok dengan domain asal halaman diblokir. Untuk menghindari pembatasan ini untuk layanan yang disebarkan ke Container Apps, Anda dapat mengaktifkan berbagi sumber daya lintas asal (CORS).

Untuk informasi selengkapnya, lihat Mengonfigurasi CORS di Azure Container Apps.

Langkah berikutnya