Referensi: Pengaturan konfigurasi kontainer gateway yang dihost sendiri

BERLAKU UNTUK: Pengembang | Premium

Artikel ini menyediakan referensi untuk pengaturan yang diperlukan dan opsional yang digunakan untuk mengonfigurasi kontainer gateway yang dihost sendiri API Management.

Untuk mempelajari lebih lanjut tentang panduan produksi (Kubernetes), sebaiknya baca artikel ini.

Penting

Referensi ini hanya berlaku untuk gateway yang dihosting sendiri v2. Versi minimum untuk ketersediaan pengaturan disediakan.

Integrasi API Konfigurasi

API Konfigurasi digunakan oleh gateway yang dihost sendiri untuk terhubung ke Azure API Management untuk mendapatkan konfigurasi terbaru dan mengirim metrik, saat diaktifkan.

Berikut adalah gambaran umum semua opsi konfigurasi:

Nama Deskripsi Wajib diisi Default Ketersediaan
gateway.name ID sumber daya gateway yang dihost sendiri. Ya, saat menggunakan autentikasi Microsoft Entra T/A v2.3+
config.service.endpoint Titik akhir konfigurasi di Azure API Management untuk gateway yang dihosting sendiri. Temukan nilai ini di portal Azure pada Penyebaran>Gateway. Ya T/A v2.0+
config.service.auth Menentukan bagaimana gateway yang dihost sendiri harus mengautentikasi ke API Konfigurasi. Saat ini token gateway dan autentikasi Microsoft Entra didukung. Ya T/A v2.0+
config.service.auth.azureAd.tenantId ID penyewa Microsoft Entra. Ya, saat menggunakan autentikasi Microsoft Entra T/A v2.3+
config.service.auth.azureAd.clientId ID klien aplikasi Microsoft Entra untuk diautentikasi dengan (juga dikenal sebagai ID aplikasi). Ya, saat menggunakan autentikasi Microsoft Entra T/A v2.3+
config.service.auth.azureAd.clientSecret Rahasia aplikasi Microsoft Entra untuk diautentikasi. Ya, saat menggunakan autentikasi Microsoft Entra (kecuali sertifikat ditentukan) T/A v2.3+
config.service.auth.azureAd.certificatePath Jalur ke sertifikat untuk diautentikasi untuk aplikasi Microsoft Entra. Ya, saat menggunakan autentikasi Microsoft Entra (kecuali rahasia ditentukan) T/A v2.3+
config.service.auth.azureAd.authority URL Otoritas ID Microsoft Entra. No https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Audiens token yang digunakan untuk autentikasi Microsoft Entra No https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Menentukan apakah gateway yang dihost sendiri harus memvalidasi sertifikat sisi server api Konfigurasi. Disarankan untuk menggunakan validasi sertifikat, hanya nonaktifkan untuk tujuan pengujian dan dengan hati-hati karena dapat menimbulkan risiko keamanan. No false v2.0+
config.service.integration.timeout Menentukan batas waktu untuk berinteraksi dengan API Konfigurasi. No 00:01:40 v2.3.5+

Gateway yang dihost sendiri menyediakan dukungan untuk beberapa opsi autentikasi untuk diintegrasikan dengan API Konfigurasi yang dapat ditentukan dengan menggunakan config.service.auth.

Panduan ini membantu Anda memberikan informasi yang diperlukan untuk menentukan cara mengautentikasi:

  • Untuk autentikasi berbasis token gateway, tentukan token akses (kunci autentikasi) gateway yang dihost sendiri di portal Azure di bawah Penyebaran Gateway>.
  • Untuk autentikasi berbasis ID Microsoft Entra, tentukan azureAdApp dan berikan pengaturan autentikasi tambahan config.service.auth.azureAd .

Penemuan & sinkronisasi lintas instans

Nama Deskripsi Wajib diisi Default Ketersediaan
neighborhood.host Nama DNS yang digunakan untuk mengatasi semua instans penyebaran gateway yang dihost sendiri untuk sinkronisasi lintas instans. Di Kubernetes, itu dapat dicapai dengan menggunakan Layanan tanpa kepala. No T/A v2.0+
neighborhood.heartbeat.port Port UDP yang digunakan untuk instans penyebaran gateway yang dihost sendiri untuk mengirim heartbeat ke instans lain. No 4291 v2.0+
policy.rate-limit.sync.port Port UDP yang digunakan untuk instans gateway yang dihost sendiri untuk menyinkronkan pembatasan laju di beberapa instans. No 4290 v2.0+

HTTP

Nama Deskripsi Wajib diisi Default Ketersediaan
net.server.http.forwarded.proto.enabled Kemampuan untuk menghormati X-Forwarded-Proto header untuk mengidentifikasi skema yang disebut rute API (hanya http/https). No salah v2.5+

Integrasi Kubernetes

Masukan Kubernetes

Penting

Dukungan untuk Kubernetes Ingress saat ini bersifat eksperimental dan tidak tercakup melalui Dukungan Azure. Pelajari lebih lanjut di GitHub.

Nama Deskripsi Wajib diisi Default Ketersediaan
k8s.ingress.enabled Aktifkan integrasi Kubernetes Ingress. No false v1.2+
k8s.ingress.namespace Namespace Layanan Kubernetes untuk menonton sumber daya Kubernetes Ingress. No default v1.2+
k8s.ingress.dns.suffix Akhiran DNS untuk membangun nama host DNS untuk layanan yang akan dikirimi permintaan. No svc.cluster.local v2.4+
k8s.ingress.config.path Jalur ke konfigurasi Kubernetes (Kubeconfig). No T/A v2.4+

Metrik

Nama Deskripsi Wajib diisi Default Ketersediaan
telemetri.metrik.lokal Aktifkan pengumpulan metrik lokal melalui StatsD. Nilai adalah salah satu opsi berikut: none, statsd. No none v2.0+
telemetri.metrik.lokal.statsd.titik akhir Titik akhir StatsD. Ya, jika telemetry.metrics.local diatur ke statsd; jika tidak, tidak. T/A v2.0+
telemetri.metrik.lokal.statsd.pengambilan sampel Tingkat pengambilan sampel metrik StatsD. Nilai harus antara 0 dan 1, misalnya, 0,5. No T/A v2.0+
telemetri.metrik.lokal.statsd.format tag format pemberian tag eksportir StatsD. Nilai adalah salah satu opsi berikut: ibrato, , dogStatsDinfluxDB. No T/A v2.0+
telemetry.metrics.cloud Indikasi apakah mengaktifkan metrik emisi ke Azure Monitor atau tidak. No true v2.0+
observability.opentelemetry.enabled Indikasi apakah akan mengaktifkan memancarkan metrik ke kolektor OpenTelemetry atau tidak di Kubernetes. No false v2.0+
observability.opentelemetry.collector.uri URI pengumpul OpenTelemetry untuk mengirim metrik. Ya, jika observability.opentelemetry.enabled diatur ke true; jika tidak, tidak. T/A v2.0+
observability.opentelemetry.system-metrics.enabled Aktifkan pengiriman metrik sistem ke pengumpul OpenTelemetry seperti CPU, memori, pengumpulan sampah, dll. No false v2.3+
observability.opentelemetry.histogram.buckets Wadah histogram tempat metrik OpenTelemetry harus dilaporkan. Format: "x,y,z,...". No "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0+

Log

Nama Deskripsi Wajib diisi Default Ketersediaan
telemetri.log.std Aktifkan pengelogan ke aliran standar. Nilai adalah salah satu opsi berikut: none, , textjson. No text v2.0+
telemetry.logs.std.level Menentukan tingkat log log yang dikirim ke aliran standar. Nilai adalah salah satu opsi berikut: all, , debug, info, warnatau errorfatal. No info v2.0+
telemetry.logs.std.color Indikasi apakah log berwarna harus digunakan dalam aliran standar atau tidak. No true v2.0+
telemetri.log.lokal Aktifkan pengelogan lokal. Nilai adalah salah satu opsi berikut: none, , auto, localsyslog, rfc5424, journal, json No auto v2.0+
telemetri.log.lokal.localsyslog.titik akhir titik akhir localyslog. Ya jika telemetry.logs.local diatur ke localsyslog; jika tidak, tidak. Lihat dokumentasi syslog lokal untuk detail selengkapnya tentang konfigurasi. T/A v2.0+
telemetri.log.lokal.localsyslog.fasilitas Menentukan kode fasilitas localyslog, contohnya, 7. No T/A v2.0+
telemetri.log.lokal.rfc5424.titik akhir titik akhir rfc5424. Ya jika telemetry.logs.local diatur ke rfc5424; jika tidak, tidak. T/A v2.0+
telemetri.log.lokal.rfc5424.fasilitas Kode fasilitas per rfc5424, misalnya, 7 No T/A v2.0+
telemetri.log.lokal.jurnal.titik akhir Titik akhir jurnal. Ya jika telemetry.logs.local diatur ke journal; jika tidak, tidak. T/A v2.0+
telemetry.logs.local.json.endpoint Titik akhir UDP yang menerima data JSON, ditentukan sebagai jalur file, IP:port, atau hostname:port. Ya jika telemetry.logs.local diatur ke json; jika tidak, tidak. 127.0.0.1:8888 v2.0+

Keamanan

Nama Deskripsi Wajib diisi Default Ketersediaan
certificates.local.ca.enabled Indikasi apakah gateway yang dihost sendiri harus menggunakan sertifikat CA lokal yang dipasang atau tidak. Diperlukan untuk menjalankan gateway yang dihost sendiri sebagai root atau dengan ID pengguna 1001. No false v2.0+
net.server.tls.ciphers.allowed-suites Daftar cipher yang dipisahkan koma untuk digunakan untuk koneksi TLS antara klien API dan gateway yang dihosting sendiri. No TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
net.client.tls.ciphers.allowed-suites Daftar cipher yang dipisahkan koma yang akan digunakan untuk koneksi TLS antara gateway yang dihosting sendiri dan backend. No TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
security.certificate-revocation.validation.enabled Menyediakan kemampuan untuk mengaktifkan/menonaktifkan validasi daftar pencabutan sertifikat No false v2.3.6+

Sovereign cloud

Berikut adalah gambaran umum pengaturan yang perlu dikonfigurasi agar dapat bekerja dengan sovereign cloud:

Nama Publik Azure Tiongkok Pemerintah AS
config.service.auth.tokenAudience https://azure-api.net/configuration (Default) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (Default) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Cara mengonfigurasi pengaturan

File YAML Kubernetes

Saat menyebarkan gateway yang dihosting sendiri ke Kubernetes menggunakan file YAML, konfigurasikan pengaturan sebagai pasangan nama-nilai dalam elemen data ConfigMap gateway. Contohnya:

apiVersion: v1
    kind: ConfigMap
    metadata:
        name: contoso-gateway-environment
    data:
        config.service.endpoint: "contoso.configuration.azure-api.net"
        telemetry.logs.std: "text"
        telemetry.logs.local.localsyslog.endpoint: "/dev/log"
        telemetry.logs.local.localsyslog.facility: "7"

[...]

Bagan helm

Saat menggunakan Helm untuk menerapkan gateway yang dihosting sendiri ke Kubernetes, teruskan pengaturan konfigurasi bagan sebagai parameter ke perintah helm install. Contohnya:

helm install azure-api-management-gateway \
    --set gateway.configuration.uri='contoso.configuration.azure-api.net' \
    --set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
    --set secret.createSecret=false \
    --set secret.existingSecretName=`mysecret` \
    azure-apim-gateway/azure-api-management-gateway

Langkah berikutnya