適用於:開發人員 | 進階
本文提供必要和選擇性設定的參考,這些設定可用來設定 API 管理 自我裝載網關容器。
欲了解更多資訊,請參閱 在 Kubernetes 生產環境中運行自架閘道器的指引。
重要
此參考僅適用於自我裝載閘道 v2。 此參考文獻標示支援每個設定的最小版本。
設定 API 整合
自架閘道器使用 Configuration API 連接 Azure API 管理,取得最新設定,並在啟用時傳送指標。
下表說明了 Configuration API 整合的設定選項:
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| gateway.name | 自我裝載閘道資源的標識碼。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
| config.service.endpoint | 自我裝載閘道的 Azure API 管理 組態端點。 在 [閘道[Azure 入口網站 中尋找此值。 | 是的 | N/A | v2.0+ |
| config.service.auth | 定義自架閘道如何向配置 API 進行認證。 目前,閘道支援閘道令牌及 Microsoft Entra 認證。 | 是的 | N/A | v2.0+ |
| config.service.auth.azureAd.tenantId | Microsoft Entra 租用戶的標識碼。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
| config.service.auth.azureAd.clientId | 要驗證之Microsoft Entra 應用程式的用戶端標識碼(也稱為應用程式識別符)。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
| config.service.auth.azureAd.clientSecret | 要驗證之Microsoft Entra 應用程式的秘密。 | 是的,使用 Microsoft Entra 認證時(除非你指定憑證) | N/A | v2.3+ |
| config.service.auth.azureAd.certificatePath | 要針對 Microsoft Entra 應用程式進行驗證的憑證路徑。 | 是的,使用 Microsoft Entra 認證時(除非你指定秘密) | N/A | v2.3+ |
| config.service.auth.azureAd.authority | Microsoft Entra 標識符的授權 URL。 | 否 | https://login.microsoftonline.com |
v2.3+ |
| config.service.auth.tokenAudience | Microsoft Entra 認證的令牌對象。 | 否 | https://azure-api.net/configuration |
v2.3+ |
| config.service.endpoint.disableCertificateValidation | 定義自架閘道是否驗證配置 API 的伺服器端憑證。 在生產環境中使用憑證驗證。 只在測試時停用,並小心使用,因為可能會帶來安全風險。 | 否 | false |
v2.0+ |
| config.service.integration.timeout | 定義與組態 API 互動的逾時。 | 否 | 00:01:40 |
v2.3.5+ |
自架閘道支援多種認證選項,以整合組態 API。 請用 config.service.auth定義這些選項。
要定義如何驗證,請提供以下資訊:
- 針對閘道令牌型驗證,請在 [閘道] 下,指定自我裝載閘道的存取令牌(驗證金鑰)。
- 針對Microsoft以專案標識碼為基礎的驗證,請指定
azureAdApp並提供其他config.service.auth.azureAd驗證設定。
跨實例發現與同步
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| neighborhood.host | DNS 名稱,用來解析跨實例同步處理之自我裝載網關部署的所有實例。 在 Kubernetes 中,使用無頭服務來解析這些實例。 | 否 | N/A | v2.0+ |
| neighborhood.heartbeat.port | 用於自我裝載網關部署實例的 UDP 埠,以將活動訊號傳送至其他實例。 | 否 | 4291 |
v2.0+ |
| policy.rate-limit.sync.port | 用於自我裝載網關實例的 UDP 連接埠,可跨多個實例同步處理速率限制。 | 否 | 4290 |
v2.0+ |
HTTP
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| net.server.http.forwarded.proto.enabled | 尊重 X-Forwarded-Proto 標頭以識別解析被呼叫 API 路由的方案(僅限 http/https)。 |
否 | false |
v2.5+ |
Kubernetes 集成
Kubernetes Ingress (preview)
重要
Kubernetes Ingress 的支援還在實驗階段,Azure 支援不涵蓋。 想了解更多,請參考 Kubernetes Ingress 的 GitHub 倉庫。
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| k8s.ingress.enabled | 啟用 Kubernetes 輸入整合。 | 否 | false |
v2.0+ |
| k8s.ingress.namespace | 用來監看 Kubernetes 輸入資源的 Kubernetes 命名空間。 | 否 | default |
v2.0+ |
| k8s.ingress.dns.suffix | DNS 後綴,用來建置要傳送要求的服務的 DNS 主機名。 | 否 | svc.cluster.local |
v2.4+ |
| k8s.ingress.config.path | Kubernetes 組態的路徑(Kubeconfig)。 | 否 | N/A | v2.4+ |
度量
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| 遠程測量.度量.本地 | 透過 StatsD 啟用 本機計量集合 。 值是下列其中一個選項:、nonestatsd。 |
否 | none |
v2.0+ |
| telemetry.metrics.local.statsd.endpoint | StatsD 端點。 | 是,如果 telemetry.metrics.local 設定為 ,則為 statsd,否則為 。 |
N/A | v2.0+ |
| telemetry.metrics.local.statsd.sampling(遙測.指標.本地.statsd.取樣) | StatsD 計量取樣率。 值必須介於 0 到 1 之間,例如 0.5。 | 否 | N/A | v2.0+ |
| 遠端檢測.指標.本地.statsd.標籤格式 | StatsD 匯出工具的標記格式。 值是下列其中一個選項:librato、、 dogStatsDinfluxDB。 |
否 | N/A | v2.0+ |
| telemetry.metrics.cloud | 指示是否啟用 emitting metrics 至 Azure 監視器。 | 否 | true |
v2.0+ |
| observability.opentelemetry.enabled | 指示是否啟用向 Kubernetes 上的 OpenTelemetry 收集器發送指標 。 | 否 | false |
v2.0+ |
| observability.opentelemetry.collector.uri | 要傳送計量的 OpenTelemetry 收集器的 URI。 | 是,如果 observability.opentelemetry.enabled 設定為 ,則為 true,否則為 。 |
N/A | v2.0+ |
| observability.opentelemetry.system-metrics.enabled | 啟用傳送系統指標,如 CPU、記憶體及垃圾回收,至 OpenTelemetry 收集器。 | 否 | false |
v2.3+ |
| observability.opentelemetry.histogram.buckets | 用於報告 OpenTelemetry 指標的直方圖桶。 格式:“x,y,z,...”。 | 否 | "5,10,25,50,100,250,500,1000,2500,5000,10000" | v2.0+ |
記錄
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| telemetry.logs.std |
啟用標準數據流的記錄 。 值是下列其中一個選項:none、、 textjson。 |
否 | text |
v2.0+ |
| telemetry.logs.std.level | 定義傳送到標準串流的日誌層級。 值為以下選項之一:all、、debuginfo、warnerror、或fatal。 |
否 | info |
v2.0+ |
| telemetry.logs.std.color | 標示是否在標準串流中使用彩色原木。 | 否 | true |
v2.0+ |
| telemetry.logs.local |
啟用本機記錄。 值是下列其中一個選項:none、、auto、localsyslog、rfc5424、 journaljson |
否 | auto |
v2.0+ |
| 遙測.日誌.本地.local系統日誌.端點 | localsyslog 端點。 | 如果 telemetry.logs.local 設定為 ,則為 localsyslog,否則為 。否則為 。 如需設定的詳細資訊,請參閱 本機 syslog 檔 。 |
N/A | v2.0+ |
| telemetry.logs.local.localsyslog.facility | 指定 localsyslog 裝置程式代碼,例如 7。 |
否 | N/A | v2.0+ |
| telemetry.logs.local.rfc5424.endpoint | rfc5424 端點。 | 如果 telemetry.logs.local 設定為 ,則為 rfc5424,否則為 。否則為 。 |
N/A | v2.0+ |
| telemetry.logs.local.rfc5424.facility | 例如,每個 rfc5424 的設施程序代碼 7 |
否 | N/A | v2.0+ |
| 遙測.日誌.本地.日誌.端點 | 日誌端點。 | 如果 telemetry.logs.local 設定為 ,則為 journal,否則為 。否則為 。 |
N/A | v2.0+ |
| telemetry.logs.local.json.endpoint | 接受 JSON 數據的 UDP 端點,指定為檔案路徑、IP:埠或主機名:埠。 | 如果 telemetry.logs.local 設定為 ,則為 json,否則為 。否則為 。 |
127.0.0.1:8888 | v2.0+ |
安全性
憑證與密碼
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| certificates.local.ca.enabled | 指示自架閘道器是否應使用掛載的本地 CA 憑證。 必須以根目錄或使用者標識碼 1001 身分執行自我裝載閘道。 | 否 | false |
v2.0+ |
| net.server.tls.ciphers.allowed-suites | 提供用於 API 用戶端與自架閘道器之間 TLS 連線的逗號分隔密碼列表。 | 否 | 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 | 自我裝載閘道與後端之間用於 TLS 連線的逗號分隔密碼清單。 | 否 | 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 | 開啟或關閉證書撤銷清單驗證。 | 否 | false |
v2.3.6+ |
TLS
| 名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
|---|---|---|---|---|
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | 顯示閘道是否允許後端使用 TLS 1.3。 類似於 在受控網關中管理通訊協定加密。 | 否 | true |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | 顯示閘道是否允許後端使用 TLS 1.2。 類似於 在受控網關中管理通訊協定加密。 | 否 | true |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | 顯示閘道是否允許後端使用 TLS 1.1。 類似於 在受控網關中管理通訊協定加密。 | 否 | false |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | 顯示閘道是否允許後端使用 TLS 1.0。 類似於 在受控網關中管理通訊協定加密。 | 否 | false |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | 顯示閘道是否允許後端使用 SSL 3.0。 類似於 在受控網關中管理通訊協定加密。 | 否 | false |
v2.0+ |
主權雲端
下表說明你必須設定的設定,才能與主權雲運作:
| 名稱 | 公開 | Azure 中國 | US Gov |
|---|---|---|---|
| config.service.auth.tokenAudience |
https://azure-api.net/configuration (預設值) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
| logs.applicationinsights.endpoint |
https://dc.services.visualstudio.com/v2/track (預設值) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
如何進行設定
Kubernetes YAML 檔案
在使用 YAML 檔案部署自架閘道到 Kubernetes 時,請在閘道器的 ConfigMap 元素中將設定配置為名稱與值對 data 。 例如:
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"
[...]
Helm 圖表
當你使用 Helm 部署自架閘道到 Kubernetes 時,將 圖表設定 作為參數傳入 helm install 指令。 例如:
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
相關內容
- 了解更多如何在 Kubernetes 生產環境中運行自架閘道
- 將自我裝載閘道部署至 Docker
- 將自我裝載閘道部署至 Kubernetes
- 將自我裝載閘道部署至已啟用 Azure Arc 的 Kubernetes 叢集
- 在自我裝載閘道上啟用 Dapr 支援
- 深入瞭解 Azure Arc 擴充功能的組 態選項