Referensi: Pengaturan konfigurasi kontainer gateway yang dihost sendiri
BERLAKU UNTUK: Pengembang | Premi
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 tambahanconfig.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 , , dogStatsD influxDB . |
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 , , text json . |
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 , warn atau error fatal . |
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
Sertifikat dan Sandi
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+ |
TLS
Nama | Deskripsi | Wajib diisi | Default | Ketersediaan |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | Indikasi apakah TLS 1.3 diizinkan atau tidak menuju backend. Mirip dengan mengelola cipher protokol di gateway terkelola. | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | Indikasi apakah TLS 1.2 diizinkan atau tidak menuju backend. Mirip dengan mengelola cipher protokol di gateway terkelola. | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | Indikasi apakah TLS 1.1 diizinkan atau tidak terhadap backend. Mirip dengan mengelola cipher protokol di gateway terkelola. | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | Indikasi apakah TLS 1.0 diizinkan atau tidak terhadap backend. Mirip dengan mengelola cipher protokol di gateway terkelola. | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | Indikasi apakah SSL 3.0 diizinkan atau tidak terhadap backend. Mirip dengan mengelola cipher protokol di gateway terkelola. | No | false |
v2.0+ |
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
- Pelajari selengkapnya tentang panduan untuk menjalankan gateway yang dihost sendiri di Kubernetes dalam produksi
- Terapkan gateway yang dihosting sendiri ke Docker
- Terapkan gateway yang dihosting sendiri ke Kubernetes
- Sebarkan gateway yang dihost sendiri ke kluster berkemampuan Azure Arc
- Mengaktifkan dukungan Dapr di gateway yang dihost sendiri
- Pelajari selengkapnya tentang opsi konfigurasi untuk ekstensi Azure Arc