Share via


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:

  1. Usar a nova imagem de contêiner
  2. Usar a nova API de configuração
  3. 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