Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A: Developer | Prémio
Este artigo fornece uma referência para as configurações obrigatórias e opcionais que são usadas para configurar o contêiner de gateway auto-hospedado do Gerenciamento de API.
Para mais informações, consulte Orientações para correr um gateway auto-hospedado no Kubernetes em produção.
Importante
Essa referência se aplica somente ao gateway auto-hospedado v2. Esta referência indica a versão mínima que suporta cada configuração.
Integração com API de configuração
O gateway auto-hospedado utiliza a API de Configuração para se ligar ao API Management do Azure, obter a configuração mais recente e enviar métricas quando ativadas.
A tabela seguinte descreve as opções de configuração para integração da API de Configuração:
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| gateway.name | ID do recurso de gateway auto-hospedado. | Sim, ao usar a autenticação do Microsoft Entra | N/A | v2,3+ |
| config.service.endpoint | Ponto de extremidade de configuração no Gerenciamento de API do Azure para o gateway auto-hospedado. Encontre esse valor no portal do Azure em Implantação de gateways>. | Sim | N/A | v2.0+ |
| config.service.auth | Define como o gateway auto-hospedado autentica a API de Configuração. Atualmente, o gateway suporta token de gateway e autenticação Microsoft Entra. | Sim | N/A | v2.0+ |
| config.service.auth.azureAd.tenantId | ID do locatário do Microsoft Entra. | Sim, ao usar a autenticação do Microsoft Entra | N/A | v2,3+ |
| config.service.auth.azureAd.clientId | ID do cliente do aplicativo Microsoft Entra para autenticar (também conhecido como ID do aplicativo). | Sim, ao usar a autenticação do Microsoft Entra | N/A | v2,3+ |
| config.service.auth.azureAd.clientSecret | Segredo do aplicativo Microsoft Entra para autenticar. | Sim, ao usar autenticação Microsoft Entra (a menos que especifique um certificado) | N/A | v2,3+ |
| config.service.auth.azureAd.certificatePath | Caminho para o certificado com o qual autenticar para o aplicativo Microsoft Entra. | Sim, ao usar autenticação Microsoft Entra (a menos que especifique um segredo) | N/A | v2,3+ |
| config.service.auth.azureAd.authority | URL de autoridade do Microsoft Entra ID. | Não | https://login.microsoftonline.com |
v2,3+ |
| config.service.auth.tokenAudiência | Audiência do token para autenticação Microsoft Entra. | Não | https://azure-api.net/configuration |
v2,3+ |
| config.service.endpoint.disableCertificateValidation | Define se o gateway auto-hospedado valida o certificado do lado do servidor da API de Configuração. Use a validação de certificados em produção. Desative-o apenas para testes e tenha cautela, pois pode apresentar um risco de segurança. | Não | false |
v2.0+ |
| config.service.integration.timeout | Define o tempo limite para interagir com a API de configuração. | Não | 00:01:40 |
v2.3.5+ |
O gateway auto-hospedado suporta várias opções de autenticação para integrar com a API de Configuração. Defina estas opções usando config.service.auth.
Para definir como autenticar, forneça a seguinte informação:
- Para autenticação baseada em token de gateway, especifique um token de acesso (chave de autenticação) do gateway auto-hospedado no portal do Azure em Implantação de Gateways>.
- Para autenticação baseada em ID do Microsoft Entra, especifique
azureAdAppe forneça as configurações de autenticação adicionaisconfig.service.auth.azureAd.
Descoberta e sincronização entre instâncias
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| bairro.host | Nome DNS usado para resolver todas as instâncias de uma implantação de gateway auto-hospedado para sincronização entre instâncias. No Kubernetes, usa um Serviço headless para resolver as instâncias. | Não | N/A | v2.0+ |
| bairro.heartbeat.port | Porta UDP usada para instâncias de uma implantação de gateway auto-hospedado para enviar pulsações para outras instâncias. | Não | 4291 |
v2.0+ |
| policy.rate-limit.sync.port | Porta UDP usada para instâncias de gateway auto-hospedadas para sincronizar a limitação de taxa em várias instâncias. | Não | 4290 |
v2.0+ |
HTTP
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| net.server.http.forwarded.proto.enabled | Honra o X-Forwarded-Proto cabeçalho para identificar o esquema para resolver a rota API chamada (apenas http/https). |
Não | false |
v2,5+ |
Integração com Kubernetes
Kubernetes Ingress (pré-visualização)
Importante
O suporte ao Kubernetes Ingress é experimental, e o suporte ao Azure não o cobre. Saiba mais no repositório Kubernetes Ingress GitHub.
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| k8s.ingress.enabled | Habilite a integração do Kubernetes Ingress. | Não | false |
v2.0+ |
| k8s.ingress.namespace | Namespace do Kubernetes para observar os recursos de ingresso do Kubernetes. | Não | default |
v2.0+ |
| k8s.ingress.dns.sufixo | Sufixo DNS para criar o nome de host DNS para os serviços para os quais enviar solicitações. | Não | svc.cluster.local |
v2,4+ |
| k8s.ingress.config.path | Caminho para a configuração do Kubernetes (Kubeconfig). | Não | N/A | v2,4+ |
Métricas
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| telemetria.métricas.local | Habilite a coleta de métricas locais por meio do StatsD. Valor é uma das seguintes opções: none, statsd. |
Não | none |
v2.0+ |
| telemetry.metrics.local.statsd.endpoint | Ponto final StatsD. | Sim, se telemetry.metrics.local estiver definido como statsd; caso contrário, não. |
N/A | v2.0+ |
| telemetry.metrics.local.statsd.amostragem | Taxa de amostragem de métricas StatsD. O valor deve estar entre 0 e 1, por exemplo, 0,5. | Não | N/A | v2.0+ |
| formato-de-tags-telemetria.métricas.local.statsd | Formato de etiquetagem do exportador StatsD. Valor é uma das seguintes opções: librato, dogStatsD, influxDB. |
Não | N/A | v2.0+ |
| telemetry.metrics.cloud | Indique se deve ativar métricas de emissão no Azure Monitor. | Não | true |
v2.0+ |
| observability.opentelemetry.enabled | Indicar se deve ativar métricas de emissão a um coletor OpenTelemetry no Kubernetes. | Não | false |
v2.0+ |
| observabilidade.opentelemetry.collector.uri | URI do coletor OpenTelemetry para o qual enviar métricas. | Sim, se observability.opentelemetry.enabled estiver definido como true; caso contrário, não. |
N/A | v2.0+ |
| observability.opentelemetry.system-metrics.enabled | Permitir o envio de métricas do sistema, como CPU, memória e recolha de lixo, para o coletor OpenTelemetry. | Não | false |
v2,3+ |
| observability.opentelemetry.histogram.buckets | Baldes de histogramas para reportar métricas do OpenTelemetry. Formato: "x,y,z,...". | Não | "5,10,25,50,100,250,500,1000,2500,5000,10000" | v2.0+ |
Registos
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| telemetria.logs.std |
Habilite o registro em log em um fluxo padrão. Valor é uma das seguintes opções: none, text, json. |
Não | text |
v2.0+ |
| telemetry.logs.std.level | Define o nível logarítmico dos registos enviados para o fluxo padrão. Valor é uma das seguintes opções: all, debug, info, warn, error, ou fatal. |
Não | info |
v2.0+ |
| telemetry.logs.std.color | Indicar se deve ou não usar troncos coloridos no curso padrão. | Não | true |
v2.0+ |
| telemetry.logs.local |
Habilite o registro em log local. Valor é uma das seguintes opções: none, auto, localsyslog, rfc5424, journal, , json |
Não | auto |
v2.0+ |
| telemetry.logs.local.localsyslog.endpoint | ponto de extremidade localsyslog. | Sim, se telemetry.logs.local estiver definido como localsyslog; caso contrário, não. Consulte a documentação do syslog local para obter mais detalhes sobre a configuração. |
N/A | v2.0+ |
| telemetry.logs.local.localsyslog.facility | Especifica o código do recurso localsyslog, por exemplo, 7. |
Não | N/A | v2.0+ |
| telemetry.logs.local.rfc5424.endpoint | Ponto de extremidade RFC5424. | Sim, se telemetry.logs.local estiver definido como rfc5424; caso contrário, não. |
N/A | v2.0+ |
| telemetry.logs.local.rfc5424.facility | Código de instalação por rfc5424, por exemplo, 7 |
Não | N/A | v2.0+ |
| telemetria.registos.local.jornal.endpoint | Ponto final do diário. | Sim, se telemetry.logs.local estiver definido como journal; caso contrário, não. |
N/A | v2.0+ |
| telemetry.logs.local.json.Ponto final | Ponto de extremidade UDP que aceita dados JSON, especificados como caminho do arquivo, IP:port ou hostname:port. | Sim, se telemetry.logs.local estiver definido como json; caso contrário, não. |
127.0.0.1:8888 | v2.0+ |
Segurança
Certificados e cifras
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| certificates.local.ca.enabled | Indicar se o gateway auto-hospedado deve usar certificados locais de CA montados. É necessário executar o gateway auto-hospedado como root ou com ID de usuário 1001. | Não | false |
v2.0+ |
| net.server.tls.ciphers.allowed-suites | Lista separada por vírgulas de cifras a usar para a ligação TLS entre o cliente API e o gateway auto-hospedado. | Não | 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 | Lista separada por vírgulas de cifras a serem usadas para conexão TLS entre o gateway auto-hospedado e o back-end. | Não | 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 | Ativa ou desativa a validação da lista de revogação de certificados. | Não | false |
v2.3.6+ |
TLS
| Nome | Descrição | Necessário | Predefinição | Disponibilidade |
|---|---|---|---|---|
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | Indica se o gateway permite TLS 1.3 para o backend. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. | Não | true |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | Indica se o gateway permite TLS 1.2 para o backend. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. | Não | true |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | Indica se o gateway permite TLS 1.1 para o backend. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. | Não | false |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | Indica se o gateway permite TLS 1.0 para o backend. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. | Não | false |
v2.0+ |
| Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | Indica se o gateway permite SSL 3.0 para o backend. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. | Não | false |
v2.0+ |
Clouds soberanas
A tabela seguinte descreve as definições que deve configurar para trabalhar com nuvens soberanas:
| Nome | Público | Azure China | Administração Pública dos EUA |
|---|---|---|---|
| config.service.auth.tokenAudiência |
https://azure-api.net/configuration (Padrão) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
| logs.applicationinsights.endpoint |
https://dc.services.visualstudio.com/v2/track (Padrão) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
Como definir as definições
Arquivo Kubernetes YAML
Ao implementar o gateway auto-hospedado para o Kubernetes usando um ficheiro YAML, configure as definições como pares nome-valor no data elemento do ConfigMap do gateway. Por exemplo:
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"
[...]
Gráfico Helm
Quando usar o Helm para implementar o gateway auto-hospedado para o Kubernetes, passe as definições de configuração do gráfico como parâmetros ao helm install comando. Por exemplo:
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
Conteúdo relacionado
- Saiba mais sobre como correr o gateway auto-hospedado no Kubernetes em produção
- Implantar gateway auto-hospedado no Docker
- Implantar gateway auto-hospedado no Kubernetes
- Implantar gateway auto-hospedado no cluster Kubernetes habilitado para Azure Arc
- Habilitar o suporte a Dapr em gateway auto-hospedado
- Saiba mais sobre as opções de configuração para a extensão Azure Arc