Como implantar uma instância do serviço de Gerenciamento de API do Azure em múltiplas regiões do AzureHow to deploy an Azure API Management service instance to multiple Azure regions

O gerenciamento de API do Azure dá suporte à implantação de várias regiões, que permite que os editores de API distribuam um único serviço de gerenciamento de API do Azure em qualquer número de regiões do Azure com suporte.Azure API Management supports multi-region deployment, which enables API publishers to distribute a single Azure API management service across any number of supported Azure regions. O recurso de várias regiões ajuda a reduzir a latência de solicitação percebida por consumidores de API distribuídos geograficamente e melhora a disponibilidade do serviço se uma região ficar offline.Multi-region feature helps reduce request latency perceived by geographically distributed API consumers and improves service availability if one region goes offline.

Um novo serviço de gerenciamento de API do Azure inicialmente contém apenas uma unidade em uma única região do Azure, a região primária.A new Azure API Management service initially contains only one unit in a single Azure region, the Primary region. Unidades adicionais podem ser adicionadas às regiões primárias ou secundárias.Additional units can be added to the Primary or Secondary regions. Um componente de gateway de gerenciamento de API é implantado em todas as regiões primárias e secundárias selecionadas.An API Management gateway component is deployed to every selected Primary and Secondary region. As solicitações de API de entrada são automaticamente direcionadas para a região mais próxima.Incoming API requests are automatically directed to the closest region. Se uma região ficar offline, as solicitações de API serão automaticamente roteadas em volta da região com falha para o gateway mais próximo.If a region goes offline, the API requests will be automatically routed around the failed region to the next closest gateway.

Observação

Somente o componente de gateway do gerenciamento de API é implantado em todas as regiões.Only the gateway component of API Management is deployed to all regions. O componente de gerenciamento de serviços e o portal do desenvolvedor são hospedados somente na região primária.The service management component and developer portal are hosted in the Primary region only. Portanto, no caso da interrupção da região primária, o acesso ao portal do desenvolvedor e a capacidade de alterar a configuração (por exemplo, adicionar APIs, aplicar políticas) será prejudicado até a região primária ficar online novamente.Therefore, in case of the Primary region outage, access to the developer portal and ability to change configuration (e.g. adding APIs, applying policies) will be impaired until the Primary region comes back online. Embora a região primária esteja offline, as regiões secundárias disponíveis continuarão a servir o tráfego de API usando a configuração mais recente disponível para elas.While the Primary region is offline available Secondary regions will continue to serve the API traffic using the latest configuration available to them.

Importante

O recurso para habilitar o armazenamento de dados do cliente em uma única região está disponível no momento apenas na região do Sudeste Asiático (Cingapura) da área geográfica do Pacífico Asiático.The feature to enable storing customer data in a single region is currently only available in the Southeast Asia Region (Singapore) of the Asia Pacific Geo. Para todas as outras regiões, os dados do cliente são armazenados na Área geográfica.For all other regions, customer data is stored in Geo.

DisponibilidadeAvailability

Importante

Este recurso está disponível somente no nível Premium do Gerenciamento de API.This feature is available only in the Premium tier of API Management.

Implantar o serviço de gerenciamento de API em uma nova região Deploy API Management service to a new region

Observação

Se você ainda não tiver criado uma instância de serviço de Gerenciamento de API, consulte Criar uma instância de serviço de Gerenciamento de API.If you have not yet created an API Management service instance, see Create an API Management service instance.

  1. No portal do Azure, navegue até o serviço de gerenciamento de API e clique na entrada locais no menu.In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. Clique em + Adicionar na barra superior.Click + Add in the top bar.
  3. Selecione o local na lista suspensa e defina o número de unidades com o controle deslizante.Select the location from the drop-down list and set the number of units with the slider.
  4. Clique no botão Adicionar para confirmar.Click the Add button to confirm.
  5. Repita esse processo até configurar todos os locais.Repeat this process until you configure all locations.
  6. Clique em salvar na barra superior para iniciar o processo de implantação.Click Save in the top bar to start the deployment process.

Excluir um local de serviço de gerenciamento de API Delete an API Management service location

  1. No portal do Azure, navegue até o serviço de gerenciamento de API e clique na entrada locais no menu.In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. Para o local em que você deseja remover, abra o menu de contexto usando o botão ... na extremidade direita da tabela.For the location you would like to remove, open the context menu using the ... button at the right end of the table. Selecione a opção Excluir.Select the Delete option.
  3. Confirme a exclusão e clique em Salvar para aplicar as alterações.Confirm the deletion and click Save to apply the changes.

Rotear chamadas à API para serviços regionais de back-end Route API calls to regional backend services

O Gerenciamento de API do Azure apresenta apenas uma URL de serviço de back-end.Azure API Management features only one backend service URL. Mesmo que haja instâncias do Gerenciamento de API do Azure em várias regiões, o gateway de API ainda encaminhará solicitações para o mesmo serviço de back-end, que é implantado em apenas uma região.Even though there are Azure API Management instances in various regions, the API gateway will still forward requests to the same backend service, which is deployed in only one region. Nesse caso, o ganho de desempenho será proveniente apenas das respostas armazenadas em cache dentro do Gerenciamento de API do Azure em uma região específica para a solicitação, mas entrar em contato com o back-end em todo o mundo ainda pode causar alta latência.In this case, the performance gain will come only from responses cached within Azure API Management in a region specific to the request, but contacting the backend across the globe may still cause high latency.

Para aproveitar totalmente a distribuição geográfica do sistema, você deve ter serviços de back-end implantados nas mesmas regiões como instâncias do Gerenciamento de API do Azure.To fully leverage geographical distribution of your system, you should have backend services deployed in the same regions as Azure API Management instances. Então, usando as políticas e a propriedade @(context.Deployment.Region), é possível rotear o tráfego para instâncias locais do back-end.Then, using policies and @(context.Deployment.Region) property, you can route the traffic to local instances of your backend.

  1. Navegue até a instância do Gerenciamento de API do Azure e clique em APIs no menu esquerdo.Navigate to your Azure API Management instance and click on APIs from the left menu.

  2. Selecione a API desejada.Select your desired API.

  3. Clique em Editor de códigos na lista suspensa de seta no Processamento de entrada.Click Code editor from the arrow dropdown in the Inbound processing.

    Editor de códigos de API

  4. Use a política set-backend combinada com as políticas condicionais choose para construir uma política de roteamento apropriada na seção <inbound> </inbound> do arquivo.Use the set-backend combined with conditional choose policies to construct a proper routing policy in the <inbound> </inbound> section of the file.

    Por exemplo, o arquivo XML abaixo funcionaria para as regiões Oeste dos EUA e Leste da Ásia:For example, the below XML file would work for West US and East Asia regions:

    <policies>
        <inbound>
            <base />
            <choose>
                <when condition="@("West US".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-us.com/" />
                </when>
                <when condition="@("East Asia".Equals(context.Deployment.Region, StringComparison.OrdinalIgnoreCase))">
                    <set-backend-service base-url="http://contoso-asia.com/" />
                </when>
                <otherwise>
                    <set-backend-service base-url="http://contoso-other.com/" />
                </otherwise>
            </choose>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

Dica

Você também pode antecipar seus serviços de back-end com o Gerenciador de tráfego do Azure, direcionar as chamadas à API para o Gerenciador de tráfego e permitir que ele resolva o roteamento automaticamente.You may also front your backend services with Azure Traffic Manager, direct the API calls to the Traffic Manager, and let it resolve the routing automatically.

Usar roteamento personalizado para gateways regionais de gerenciamento de API Use custom routing to API Management regional gateways

O gerenciamento de API roteia as solicitações para um Gateway regional com base na menor latência.API Management routes the requests to a regional gateway based on the lowest latency. Embora não seja possível substituir essa configuração no gerenciamento de API, você pode usar seu próprio Gerenciador de tráfego com regras de roteamento personalizadas.Although it is not possible to override this setting in API Management, you can use your own Traffic Manager with custom routing rules.

  1. Crie seu próprio Gerenciador de tráfego do Azure.Create your own Azure Traffic Manager.
  2. Se você estiver usando um domínio personalizado, use-o com o Gerenciador de tráfego em vez do serviço de gerenciamento de API.If you are using a custom domain, use it with the Traffic Manager instead of the API Management service.
  3. Configure os pontos de extremidade regionais de gerenciamento de API no Gerenciador de tráfego.Configure the API Management regional endpoints in Traffic Manager. Os pontos de extremidade regionais seguem o padrão de URL de https://<service-name>-<region>-01.regional.azure-api.net , por exemplo https://contoso-westus2-01.regional.azure-api.net .The regional endpoints follow the URL pattern of https://<service-name>-<region>-01.regional.azure-api.net, for example https://contoso-westus2-01.regional.azure-api.net.
  4. Configure os pontos de extremidade de status regional do gerenciamento de API no Gerenciador de tráfego.Configure the API Management regional status endpoints in Traffic Manager. Os pontos de extremidade de status regionais seguem o padrão de URL de https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef , por exemplo https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef .The regional status endpoints follow the URL pattern of https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef, for example https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef.
  5. Especifique o método de roteamento do Gerenciador de tráfego.Specify the routing method of the Traffic Manager.