Guia de migração de gateway auto-hospedado
APLICA-SE A: Developer | Prémio
Este artigo explica como migrar implantações de gateway auto-hospedado existentes para gateway auto-hospedado v2.
Importante
O suporte para imagens de contêiner de gateway auto-hospedado do Azure API Management versão 0 e versão 1 termina em 1º de outubro de 2023, juntamente com sua API de Configuração v1 correspondente. Saiba mais em nossa documentação de substituição
Novidades?
À medida que nos esforçamos para tornar mais fácil para os clientes implantar nosso gateway autohospedado, introduzimos uma nova API de configuração que remove a dependência do Armazenamento do 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 em sua infraestrutura existente.
Introduzimos novas tags de imagem de contêiner para permitir que os clientes escolham a melhor maneira de experimentar nosso gateway e implantá-lo na produção.
Para ajudar os clientes a executar nosso gateway em produção, estendemos nossa orientação de produção para cobrir como dimensionar automaticamente o gateway e implantá-lo para alta disponibilidade em seu cluster Kubernetes.
Saiba mais sobre a conectividade do nosso gateway, nossos novos requisitos de infraestrutura e o que acontece se a conectividade for perdida neste artigo.
Pré-requisitos
Antes de migrar para o gateway auto-hospedado v2, você precisa garantir que sua infraestrutura atenda aos requisitos.
Migrando para gateway auto-hospedado v2
A migração do gateway auto-hospedado v2 requer algumas pequenas etapas a serem feitas:
- Usar a nova imagem de contêiner
- Usar a nova API de configuração
- Atenda aos requisitos mínimos de segurança
Imagem de Contentor
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 tags de imagem de contêiner.
Você pode encontrar uma lista completa de tags disponíveis aqui ou nos encontrar no Docker Hub.
Usando 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 | Suportado | Requisitos |
---|---|---|---|
v2 | {name}.configuration.azure-api.net |
Sim | Ligação |
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 | Ligação |
O cliente deve usar a nova API de configuração v2 alterando seus scripts de implantação para usar a nova URL e atender aos requisitos de infraestrutura.
Importante
- O nome de host DNS deve ser resolúvel para endereços IP e os endereços IP correspondentes devem ser acessíveis. Isso pode exigir configuração adicional caso você esteja usando um DNS privado, VNET interna ou outros requisitos de infraestrutura.
Segurança
Pacotes de codificação TLS disponíveis
No lançamento, o gateway auto-hospedado v2.0 usava apenas um subconjunto dos pacotes de codificação que a v1.x estava usando. A partir da v2.0.4, trouxemos de volta todos os pacotes de codificação suportados pela v1.x.
Você pode saber mais sobre os pacotes de codificação usados neste artigo ou usar a v2.1.1 para controlar quais pacotes de codificação usar.
Atenda aos requisitos mínimos de segurança
Durante a inicialização, o gateway auto-hospedado preparará os certificados de CA que serão usados. Isso requer que o contêiner do gateway seja executado com pelo menos o 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, o seguinte é necessário, no mínimo:
securityContext:
runAsNonRoot: true
runAsUser: 1001
readOnlyRootFilesystem: false
No entanto, a partir do gateway auto-hospedado é capaz de 2.0.3
executar como não-raiz no Kubernetes, permitindo que os clientes executem o gateway com mais segurança.
Aqui está 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 a execução do gateway auto-hospedado com sistema de arquivos somente leitura (readOnlyRootFilesystem: true
).
Avaliar o impacto com o Azure Advisor
Para facilitar a migração, introduzimos novas recomendações do Azure Advisor:
- Usar recomendação v2 de gateway auto-hospedado - Identifica instâncias de Gerenciamento de API do Azure onde o uso de gateway auto-hospedado v0.x ou v1.x foi identificado.
- Usar recomendação da API de Configuração v2 para gateways auto-hospedados - Identifica instâncias de Gerenciamento de API do Azure onde 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 Azure Advisor para determinar se uma migração é necessária. Use as opções de filtragem para ver se uma das recomendações acima está presente.
Usar o Gráfico de Recursos do Azure para identificar instâncias de Gerenciamento de API do Azure
Esta consulta do Gráfico de Recursos do Azure fornece uma lista de instâncias de 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 suporta nomes de domínio personalizados
Próximos passos
- Saiba mais sobre o Gerenciamento de API em um mundo híbrido e multicloud
- Saiba mais sobre as orientações para executar 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