Guia de migração de gateway auto-hospedado
APLICA-SE A: Desenvolvedor | Premium
Este artigo explica como migrar implantações de gateway auto-hospedado existentes para o gateway auto-hospedado v2.
Importante
O suporte para as imagens de contêiner do gateway auto-hospedado versão 0 e versão 1 do Gerenciamento de API do Azure termina em 1º de outubro de 2023, acompanhado da API de Configuração correspondente v1. Saiba mais em nossa documentação de reprovação
Novidades
Conforme nos esforçamos para facilitar a implantação do gateway auto-hospedado pelos clientes, introduzimos uma nova API de configuração que remove a dependência do Armazenamento do Microsoft Azure, a menos que você esteja usando o inspetor de API ou cotas.
A nova API de configuração permite que os clientes adotem, implantem e operem mais facilmente nosso gateway auto-hospedado na infraestrutura existente deles.
Introduzimos novas marcas de imagem de contêiner para permitir que os clientes escolham a melhor maneira de experimentar nosso gateway e implantá-lo em produção.
Para ajudar os clientes a executar nosso gateway em produção, estendemos nossas diretrizes de produção para abordar como dimensionar automaticamente o gateway e implantá-lo para alta disponibilidade no cluster do Kubernetes.
Saiba mais neste artigo sobre a conectividade do nosso gateway, nossos novos requisitos de infraestrutura e o que acontece se a conectividade for perdida.
Pré-requisitos
Antes de migrar para o gateway auto-hospedado v2, você precisa garantir que sua infraestrutura atenda aos requisitos.
Como migrar para o gateway auto-hospedado v2
A migração para o gateway auto-hospedado v2 requer que algumas etapas pequenas sejam realizadas:
- Usar uma nova imagem de contêiner
- Usar a nova API de configuração
- Atender a requisitos mínimos de segurança
Imagem do contêiner
Altere a marca de imagem em seus scripts de implantação para usar 2.0.0
ou acima.
Como alternativa, escolha uma de nossas outras marcas de imagem de contêiner.
Você pode encontrar uma lista completa de marcas disponíveis aqui ou nos encontrar no Docker Hub.
Usar a nova API de configuração
Para migrar para o gateway auto-hospedado v2, os clientes precisam usar nossa nova API de Configuração v2.
Atualmente, o Gerenciamento de API do Azure fornece as seguintes APIs de Configuração para gateway auto-hospedado:
Serviço de Configuração | URL | Com suporte | Requisitos |
---|---|---|---|
v2 | {name}.configuration.azure-api.net |
Sim | Link |
v1 | {name}.management.azure-api.net/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.ApiManagement/service/{name}?api-version=2021-01-01-preview |
Não | Link |
O cliente precisa usar a nova API de Configuração v2 alterando os próprios scripts de implantação para usar a nova URL e atender aos requisitos de infraestrutura.
Importante
- Os nomes de host DNS precisam ser resolvíveis para endereços IP e os endereços IP correspondentes precisam estar acessíveis. Isso pode exigir uma configuração adicional caso você esteja usando um DNS privado, uma VNet interna ou outros requisitos de infraestrutura.
Segurança
Pacotes de criptografia TLS disponíveis
Na inicialização, o gateway auto-hospedado v2.0 usava apenas um subconjunto dos conjuntos de criptografia que a v1.x estava usando. A partir da v2.0.4, trouxemos de volta todos os conjuntos de criptografias suportados pela v1.x.
Você pode conhecer melhor os pacotes de criptografia usados neste artigo ou usar a v2.1.1 para controlar quais pacotes de criptografia usar.
Atender aos requisitos mínimos de segurança
Durante a inicialização, o gateway auto-hospedado preparará os certificados de AC que serão usados. Isso requer que o contêiner de gateway seja executado com pelo menos a ID de usuário 1001 e não pode usar o sistema de arquivos somente leitura.
Ao configurar um contexto de segurança para o contêiner no Kubernetes, existem os seguintes requisitos mínimos:
securityContext:
runAsNonRoot: true
runAsUser: 1001
readOnlyRootFilesystem: false
No entanto, da versão 2.0.3
em diante, o gateway auto-hospedado é capaz de ser executado como não raiz no Kubernetes, permitindo que os clientes executem o gateway com mais segurança.
Confira um exemplo do contexto de segurança para o gateway auto-hospedado:
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1001 # This is a built-in user, but you can use any user ie 1000 as well
runAsGroup: 2000 # This is just an example
privileged: false
capabilities:
drop:
- all
Aviso
Não há suporte para executar o gateway auto-hospedado com sistema de arquivos somente leitura (readOnlyRootFilesystem: true
).
Avaliar o impacto com o Assistente do Azure
Para facilitar a migração, apresentamos novas recomendações do Assistente do Azure:
- Usar a recomendação de gateway auto-hospedado v2: identifica instâncias de Gerenciamento de API do Azure em que o uso do gateway auto-hospedado v0.x ou v1.x foi identificado.
- Usar a API de Configuração v2 para recomendação de gateways auto-hospedados: identifica instâncias de Gerenciamento de API do Azure em que o uso da API de Configuração v1 para gateway auto-hospedado foi identificado.
É altamente recomendável que os clientes usem a visão geral de "Todas as Recomendações" no Assistente do Azure para determinar se uma migração é necessária. Use as opções de filtragem para ver se uma das recomendações acima está presente.
Use o Azure Resource Graph para identificar instâncias do Gerenciamento de API do Azure
Esta consulta do Azure Resource Graph fornece uma lista de instâncias do Gerenciamento de API do Azure afetadas:
AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence'
| extend
recommendationTitle = properties.shortDescription.solution
| where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways'
| extend
instanceName = properties.impactedValue,
recommendationImpact = properties.impact,
recommendationMetadata = properties.extendedProperties,
lastUpdated = properties.lastUpdated
| project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, recommendationMetadata, lastUpdated
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.impactedField == 'Microsoft.ApiManagement/service' and properties.category == 'OperationalExcellence' | extend recommendationTitle = properties.shortDescription.solution | where recommendationTitle == 'Use self-hosted gateway v2' or recommendationTitle == 'Use Configuration API v2 for self-hosted gateways' | extend instanceName = properties.impactedValue, recommendationImpact = properties.impact, recommendationMetadata = properties.extendedProperties, lastUpdated = properties.lastUpdated | project tenantId, subscriptionId, resourceGroup, instanceName, recommendationTitle, recommendationImpact, lastUpdated"
Limitações conhecidas
Aqui está uma lista de limitações conhecidas para o gateway auto-hospedado v2:
- A API de configuração v2 não dá suporte a nomes de domínio personalizados
Próximas etapas
- Saiba mais sobre o Gerenciamento de API em um mundo híbrido e multicloud
- Saiba mais sobre as diretrizes para executar o gateway auto-hospedado no Kubernetes em produção
- Implante um gateway auto-hospedado para o Docker
- Implante um gateway auto-hospedado para o Kubernetes
- Implantar o gateway auto-hospedado no cluster do Kubernetes habilitado para Azure Arc