Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Developer | Premia
Ten artykuł zawiera informacje dotyczące wymaganych i opcjonalnych ustawień używanych do konfigurowania własnego kontenera bramy usługi API Management.
Więcej informacji można znaleźć w Wytycznych dotyczących uruchamiania samodzielnie hostowanej bramki w Kubernetes w produkcji.
Ważne
Ta dokumentacja dotyczy tylko własnej bramy w wersji 2. W tym odnośniku wymieniono minimalną wersję wspierającą każde ustawienie.
Integracja interfejsu API konfiguracji
Brama hostowana samodzielnie wykorzystuje API konfiguracyjne do łączenia się z Azure API Management, pobierania najnowszej konfiguracji oraz przesyłania metryk po włączeniu.
Poniższa tabela opisuje opcje konfiguracyjne integracji z API konfiguracyjnym:
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| gateway.name | Identyfikator zasobu własnej bramy. | Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft | Nie dotyczy | Wersja 2.3 lub nowsza |
| config.service.endpoint | Punkt końcowy konfiguracji w usłudze Azure API Management dla własnej bramy. Znajdź tę wartość w witrynie Azure Portal w obszarze Wdrażanie bram>. | Tak | Nie dotyczy | Wersja 2.0 lub nowsza |
| config.service.auth | Definiuje, jak samodzielnie hostowana brama uwierzytelnia się do API konfiguracyjnego. Obecnie brama obsługuje tokeny bramowe oraz uwierzytelnianie Microsoft Entra. | Tak | Nie dotyczy | Wersja 2.0 lub nowsza |
| config.service.auth.azureAd.tenantId | Identyfikator dzierżawy firmy Microsoft Entra. | Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft | Nie dotyczy | Wersja 2.3 lub nowsza |
| config.service.auth.azureAd.clientId | Identyfikator klienta aplikacji Microsoft Entra do uwierzytelniania (znany również jako identyfikator aplikacji). | Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft | Nie dotyczy | Wersja 2.3 lub nowsza |
| config.service.auth.azureAd.clientSecret | Wpis tajny aplikacji Microsoft Entra do uwierzytelniania. | Tak, przy użyciu uwierzytelniania Microsoft Entra (chyba że podasz certyfikat) | Nie dotyczy | Wersja 2.3 lub nowsza |
| config.service.auth.azureAd.certificatePath | Ścieżka do certyfikatu do uwierzytelniania w aplikacji Microsoft Entra. | Tak, przy użyciu uwierzytelniania Microsoft Entra (chyba że podajesz sekret) | Nie dotyczy | Wersja 2.3 lub nowsza |
| config.service.auth.azureAd.authority | Adres URL urzędu identyfikatora entra firmy Microsoft. | Nie. | https://login.microsoftonline.com |
Wersja 2.3 lub nowsza |
| config.service.auth.tokenAudience | Odbiorcy tokena do uwierzytelniania Microsoft Entra. | Nie. | https://azure-api.net/configuration |
Wersja 2.3 lub nowsza |
| config.service.endpoint.disableCertificateValidation | Definiuje, czy samodzielnie hostowana brama waliduje certyfikat po stronie serwera API konfiguracyjnego. Używaj walidacji certyfikatów w produkcji. Wyłącz go tylko do testów i zachowaj ostrożność, ponieważ może to wprowadzać zagrożenie dla bezpieczeństwa. | Nie. | false |
Wersja 2.0 lub nowsza |
| config.service.integration.timeout | Definiuje limit czasu interakcji z interfejsem API konfiguracji. | Nie. | 00:01:40 |
Wersja 2.3.5 lub nowsza |
Brama hostowana samodzielnie obsługuje kilka opcji uwierzytelniania, integrując się z API konfiguracyjnym. Zdefiniuj te opcje za pomocą config.service.auth.
Aby zdefiniować, jak się uwierzytelnić, podaj następujące informacje:
- W przypadku uwierzytelniania opartego na tokenach bramy określ token dostępu (klucz uwierzytelniania) bramy hostowanej samodzielnie w witrynie Azure Portal w obszarze >.
- W przypadku uwierzytelniania opartego na identyfikatorze Entra firmy Microsoft określ
azureAdAppi podaj dodatkoweconfig.service.auth.azureAdustawienia uwierzytelniania.
Odkrywanie i synchronizacja między instancjami
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| neighborhood.host | Nazwa DNS używana do rozpoznawania wszystkich wystąpień wdrożenia własnej bramy na potrzeby synchronizacji między wystąpieniami. W Kubernetes używaj usługi headless do rozwiązywania instancji. | Nie. | Nie dotyczy | Wersja 2.0 lub nowsza |
| neighborhood.heartbeat.port | Port UDP używany w przypadku wystąpień wdrożenia własnej bramy w celu wysyłania pulsów do innych wystąpień. | Nie. | 4291 |
Wersja 2.0 lub nowsza |
| policy.rate-limit.sync.port | Port UDP używany na potrzeby wystąpień bramy self-hosted w celu synchronizacji ograniczania szybkości w wielu wystąpieniach. | Nie. | 4290 |
Wersja 2.0 lub nowsza |
HTTP
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| net.server.http.forwarded.proto.enabled | Honoruje nagłówek X-Forwarded-Proto , aby zidentyfikować schemat rozwiązywania wywołanej trasy API (tylko http/https). |
Nie. | false |
Wersja 2.5 lub nowsza |
Integracja rozwiązania Kubernetes
Kubernetes Ingress (podgląd)
Ważne
Wsparcie dla Kubernetes Ingress jest eksperymentalne, a wsparcie Azure tego nie obejmuje. Dowiedz się więcej w repozytorium Kubernetes Ingress GitHub.
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| k8s.ingress.enabled | Włącz integrację ruchu przychodzącego Kubernetes. | Nie. | false |
Wersja 2.0 lub nowsza |
| k8s.ingress.namespace | Przestrzeń nazw platformy Kubernetes do obejrzenia zasobów ruchu przychodzącego platformy Kubernetes. | Nie. | default |
Wersja 2.0 lub nowsza |
| k8s.ingress.dns.sufiks | Sufiks DNS do utworzenia nazwy hosta DNS dla usług do wysyłania żądań. | Nie. | svc.cluster.local |
Wersja 2.4 lub nowsza |
| k8s.ingress.config.path | Ścieżka do konfiguracji platformy Kubernetes (Kubeconfig). | Nie. | Nie dotyczy | Wersja 2.4 lub nowsza |
Metryki
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| telemetry.metrics.local | Włącz zbieranie lokalnych metryk za pomocą funkcji StatsD. Wartość jest jedną z następujących opcji: none, statsd. |
Nie. | none |
Wersja 2.0 lub nowsza |
| telemetry.metryki.localny.statsd.endpoint | Punkt końcowy StatsD. | Tak, jeśli telemetry.metrics.local jest ustawiona na statsd; w przeciwnym razie nie. |
Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.metrics.lokalne.statsd.sampling | Wskaźnik próbkowania metryk StatsD. Wartość musi należeć do zakresu od 0 do 1, na przykład 0,5. | Nie. | Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.metrics.local.statsd.tag-format | Format tagowania eksportera StatsD. Wartość jest jedną z następujących opcji: librato, dogStatsD, influxDB. |
Nie. | Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.metrics.cloud | Wskazanie, czy włączyć emisję metryk do Azure Monitor. | Nie. | true |
Wersja 2.0 lub nowsza |
| observability.opentelemetry.enabled | Wskazanie, czy należy umożliwić emisję metryk do kolektora OpenTelemetry w Kubernetes. | Nie. | false |
Wersja 2.0 lub nowsza |
| observability.opentelemetry.collector.uri | Identyfikator URI modułu zbierającego OpenTelemetry do wysyłania metryk. | Tak, jeśli observability.opentelemetry.enabled jest ustawiona na true; w przeciwnym razie nie. |
Nie dotyczy | Wersja 2.0 lub nowsza |
| observability.opentelemetry.system-metrics.enabled | Włącz przesyłanie metryk systemowych, takich jak CPU, pamięć i garbage collection, do kolektora OpenTelemetry. | Nie. | false |
Wersja 2.3 lub nowsza |
| observability.opentelemetry.histogram.buckets | Kubełki histogramowe, w których można raportować metryki OpenTelemetry. Format: "x,y,z,...". | Nie. | "5,10,25,50,100,250,500,1000,2500,5000,10000" | Wersja 2.0 lub nowsza |
Dzienniki
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| telemetry.logs.std |
Włącz rejestrowanie w standardowym strumieniu. Wartość jest jedną z następujących opcji: none, text, json. |
Nie. | text |
Wersja 2.0 lub nowsza |
| telemetry.logs.std.level | Definiuje poziom logów wysyłanych do strumienia standardowego. Wartość to jedna z następujących opcji: all, , infodebug, , warnerror, lub fatal. |
Nie. | info |
Wersja 2.0 lub nowsza |
| telemetry.logs.std.color | Wskazanie, czy używać kolorowych kłod w standardowym strumieniu. | Nie. | true |
Wersja 2.0 lub nowsza |
| telemetry.logs.local |
Włącz rejestrowanie lokalne. Wartość jest jedną z następujących opcji: none, , autolocalsyslog, rfc5424, , , journaljson |
Nie. | auto |
Wersja 2.0 lub nowsza |
| telemetry.logs.local.localsyslog.endpoint | punkt końcowy localsyslog. | Tak, jeśli telemetry.logs.local jest ustawiona na localsyslog; w przeciwnym razie nie. Aby uzyskać więcej informacji na temat konfiguracji, zobacz dokumentację lokalnego dziennika systemowego. |
Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.logs.local.localsyslog.facility | Określa kod obiektu localsyslog | Nie. | Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.logs.local.rfc5424.endpoint | punkt końcowy rfc5424. | Tak, jeśli telemetry.logs.local jest ustawiona na rfc5424; w przeciwnym razie nie. |
Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.logs.local.rfc5424.facility | Kod obiektu na rfc5424, na przykład 7 |
Nie. | Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.logi.lokalny.dziennik.endpoint | Punkt końcowy dziennika. | Tak, jeśli telemetry.logs.local jest ustawiona na journal; w przeciwnym razie nie. |
Nie dotyczy | Wersja 2.0 lub nowsza |
| telemetry.logs.local.json.endpoint | Punkt końcowy UDP, który akceptuje dane JSON, określony jako ścieżka pliku, IP:port lub nazwa hosta:port. | Tak, jeśli telemetry.logs.local jest ustawiona na json; w przeciwnym razie nie. |
127.0.0.1:8888 | Wersja 2.0 lub nowsza |
Zabezpieczenia
Certyfikaty i szyfry
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| certificates.local.ca.enabled | Wskazanie, czy samodzielnie hostowana brama powinna używać zamontowanych lokalnych certyfikatów CA. Wymagane jest uruchomienie własnej bramy jako katalogu głównego lub identyfikatora użytkownika 1001. | Nie. | false |
Wersja 2.0 lub nowsza |
| net.server.tls.ciphers.allowed-suites | Lista szyfrów oddzielonych przecinkami do połączenia TLS między klientem API a samodzielnie hostowaną bramą. | Nie. | 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 |
Wersja 2.0 lub nowsza |
| net.client.tls.ciphers.allowed-suites | Rozdzielona przecinkami lista szyfrów do użycia na potrzeby połączenia TLS między własną bramą a zapleczem. | Nie. | 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 |
Wersja 2.0 lub nowsza |
| security.certificate-revocation.validation.enabled | Włącza lub wyłącza walidację listy odwołania certyfikatów. | Nie. | false |
Wersja 2.3.6 lub nowsza |
magazyn lokalny wątku
| Nazwa/nazwisko | opis | Wymagani | Wartość domyślna | Dostępność |
|---|---|---|---|---|
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | Wskazuje, czy brama pozwala na TLS 1.3 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. | Nie. | true |
Wersja 2.0 lub nowsza |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | Wskazuje, czy brama pozwala na TLS 1.2 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. | Nie. | true |
Wersja 2.0 lub nowsza |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | Wskazuje, czy brama pozwala na TLS 1.1 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. | Nie. | false |
Wersja 2.0 lub nowsza |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | Wskazuje, czy brama pozwala na TLS 1.0 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. | Nie. | false |
Wersja 2.0 lub nowsza |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | Wskazuje, czy brama pozwala na SSL 3.0 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. | Nie. | false |
Wersja 2.0 lub nowsza |
Suwerenne chmury
Poniższa tabela opisuje ustawienia, które musisz skonfigurować, aby pracować z chmurami suwerennymi:
| Nazwa/nazwisko | Publiczne | Azure Chiny | Rząd USA |
|---|---|---|---|
| config.service.auth.tokenAudience |
https://azure-api.net/configuration (Ustawienie domyślne) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
| logs.applicationinsights.endpoint |
https://dc.services.visualstudio.com/v2/track (Ustawienie domyślne) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
Jak skonfigurować ustawienia
Plik YAML kubernetes
Podczas wdrażania samodzielnie hostowanej bramki do Kubernetes za pomocą pliku YAML, konfiguruj ustawienia jako pary imię-wartość w data elemencie ConfigMap bramy. Na przykład:
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"
[...]
Wykres Helm
Gdy używasz Helma do wdrażania samodzielnie hostowanej bramki do Kubernetes, przekaż ustawienia konfiguracji wykresu jako parametry helm install do polecenia. Na przykład:
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
Treści powiązane
- Dowiedz się więcej o uruchamianiu samodzielnie hostowanej bramki na Kubernetes w produkcji
- Wdrażanie własnej bramy na platformie Docker
- Wdrażanie własnej bramy na platformie Kubernetes
- Wdrażanie własnej bramy w klastrze Kubernetes z obsługą usługi Azure Arc
- Włączanie obsługi języka Dapr w bramie hostowanej samodzielnie
- Dowiedz się więcej o opcjach konfiguracji rozszerzenia usługi Azure Arc