Como implantar uma instância do serviço de gerenciamento de API do Azure em várias 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. Regiões adicionais podem ser adicionadas às regiões primárias ou secundárias.Additional regions 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.

Nota

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.

DisponibilidadeAvailability

Importante

Esta funcionalidade está disponível apenas nos Premium camada de gestão de API.This feature is available only in the Premium tier of API Management.

Implantar uma instância do serviço de gerenciamento de API em uma nova região Deploy an API Management service instance to a new region

Nota

Se você ainda não criou 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.

Na portal do Azure, navegue até a página escala e preços da instância do serviço de gerenciamento de API.In the Azure portal, navigate to the Scale and pricing page for your API Management service instance.

Guia escala

Para implantar em uma nova região, clique em + Adicionar região na barra de ferramentas.To deploy to a new region, click on + Add region from the toolbar.

Adicionar região

Selecione o local na lista suspensa e defina o número de unidades para com o controle deslizante.Select the location from the drop-down list and set the number of units for with the slider.

Especificar unidades

Clique em Adicionar para fazer sua seleção na tabela locais.Click Add to place your selection in the Locations table.

Repita esse processo até que você tenha todos os locais configurados e clique em salvar na barra de ferramentas para iniciar o processo de implantação.Repeat this process until you have all locations configured and click Save from the toolbar to start the deployment process.

Excluir uma instância do serviço de gerenciamento de API de um local Delete an API Management service instance from a location

Na portal do Azure, navegue até a página escala e preços da instância do serviço de gerenciamento de API.In the Azure portal, navigate to the Scale and pricing page for your API Management service instance.

Guia escala

Para o local 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.

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 de back-end regionais 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 de 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 benefício de desempenho será proveniente apenas de respostas armazenadas em cache no 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 poderá 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 seu sistema, você deve ter serviços de back-end implantados nas mesmas regiões que as instâncias de 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. Em seguida, usando políticas @(context.Deployment.Region) e propriedade, você pode rotear o tráfego para instâncias locais do seu 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 de gerenciamento de API do Azure e clique em APIs no menu à esquerda.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ódigo na lista suspensa de seta no processamento de entrada.Click Code editor from the arrow dropdown in the Inbound processing.

    Editor de código de API

  4. Use o set-backend combinado com políticas choose condicionais para construir uma política de roteamento <inbound> </inbound> adequada na seção 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 Ásia Oriental: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 https://<service-name>-<region>-01.regional.azure-api.netde, por https://contoso-westus2-01.regional.azure-api.netexemplo.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 https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdefURL de, https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdefpor exemplo.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.