Come distribuire un'istanza del servizio Gestione API di Azure in più aree di AzureHow to deploy an Azure API Management service instance to multiple Azure regions

Gestione API di Azure supporta la distribuzione in più aree, che consente agli editori di API di distribuire un singolo servizio gestione API di Azure in qualsiasi numero di aree di Azure supportate.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. La funzionalità in più aree consente di ridurre la latenza delle richieste percepita dai consumer di API distribuiti geograficamente e di migliorare la disponibilità del servizio se un'area è offline.Multi-region feature helps reduce request latency perceived by geographically distributed API consumers and improves service availability if one region goes offline.

Un nuovo servizio gestione API di Azure contiene inizialmente una sola unità in una singola area di Azure, ovvero l'area primaria.A new Azure API Management service initially contains only one unit in a single Azure region, the Primary region. È possibile aggiungere unità aggiuntive alle aree primarie o secondarie.Additional units can be added to the Primary or Secondary regions. Un componente gateway di gestione API viene distribuito in ogni area primaria e secondaria selezionata.An API Management gateway component is deployed to every selected Primary and Secondary region. Le richieste API in ingresso vengono indirizzate automaticamente all'area più vicina.Incoming API requests are automatically directed to the closest region. Se un'area passa alla modalità offline, le richieste API verranno indirizzate automaticamente intorno all'area non riuscita al gateway successivo più vicino.If a region goes offline, the API requests will be automatically routed around the failed region to the next closest gateway.

Nota

Solo il componente gateway di gestione API viene distribuito in tutte le aree.Only the gateway component of API Management is deployed to all regions. Il componente di gestione dei servizi e il portale per sviluppatori sono ospitati solo nell'area primaria.The service management component and developer portal are hosted in the Primary region only. Pertanto, in caso di interruzione dell'area primaria, l'accesso al portale per sviluppatori e la possibilità di modificare la configurazione, ad esempio l'aggiunta di API, l'applicazione di criteri, saranno compromessi fino a quando l'area primaria non tornerà online.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. Mentre l'area primaria è disponibile offline, le aree secondarie continueranno a gestire il traffico API usando la configurazione più recente disponibile.While the Primary region is offline available Secondary regions will continue to serve the API traffic using the latest configuration available to them.

Importante

La funzionalità che consente di archiviare i dati dei clienti in una singola area è attualmente disponibile solo nell'area Asia sudorientale (Singapore) del Asia Pacifico Geo.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. Per tutte le altre aree i dati dei clienti vengono archiviati in Geo.For all other regions, customer data is stored in Geo.

DisponibilitàAvailability

Importante

Questa funzionalità è disponibile solo nel livello Premium di Gestione API.This feature is available only in the Premium tier of API Management.

Distribuire il servizio gestione API in una nuova area Deploy API Management service to a new region

Nota

Se non è ancora stata creata un'istanza del servizio Gestione API, vedere Creare un'istanza di Gestione API.If you have not yet created an API Management service instance, see Create an API Management service instance.

  1. Nel portale di Azure passare al servizio gestione API e fare clic sulla voce locations (percorsi ) nel menu.In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. Fare clic su + Aggiungi nella barra superiore.Click + Add in the top bar.
  3. Selezionare la posizione dall'elenco a discesa e impostare il numero di unità con il dispositivo di scorrimento.Select the location from the drop-down list and set the number of units with the slider.
  4. Fare clic sul pulsante Aggiungi per confermare.Click the Add button to confirm.
  5. Ripetere questo processo fino a quando non si configurano tutte le posizioni.Repeat this process until you configure all locations.
  6. Fare clic su Salva nella barra superiore per avviare il processo di distribuzione.Click Save in the top bar to start the deployment process.

Eliminare un percorso del servizio gestione API Delete an API Management service location

  1. Nel portale di Azure passare al servizio gestione API e fare clic sulla voce locations (percorsi ) nel menu.In the Azure portal, navigate to your API Management service and click on the Locations entry in the menu.
  2. Per la località che si vuole rimuovere aprire il menu di scelta rapida usando il pulsante ... sul lato destro della tabella.For the location you would like to remove, open the context menu using the ... button at the right end of the table. Selezionare l'opzione Elimina.Select the Delete option.
  3. Confermare l'eliminazione e fare clic su Salva per applicare le modifiche.Confirm the deletion and click Save to apply the changes.

Chiamate di route API per servizi back-end a livello di area Route API calls to regional backend services

Gestione API di Azure include un solo URL del servizio back-end.Azure API Management features only one backend service URL. Anche se sono presenti istanze di gestione API di Azure in diverse aree, il gateway API inoltrerà comunque le richieste al servizio back-end stesso, che viene distribuito in una sola area.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. In questo caso, il miglioramento delle prestazioni proverrà solo dalle risposte memorizzate nella cache in Gestione API di Azure in un'area specifica per la richiesta, ma il tentativo di contattare il back-end in tutto il mondo potrebbe comunque causare una latenza elevata.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.

Per sfruttare completamente la distribuzione geografica del sistema, è necessario disporre di servizi di back-end distribuiti nelle stesse aree come istanze di gestione API di Azure.To fully leverage geographical distribution of your system, you should have backend services deployed in the same regions as Azure API Management instances. Quindi, usando i criteri e la proprietà @(context.Deployment.Region), è possibile instradare il traffico alle istanze locali di back-end.Then, using policies and @(context.Deployment.Region) property, you can route the traffic to local instances of your backend.

  1. Passare all'istanza di gestione API di Azure e fare clic su API nel menu a sinistra.Navigate to your Azure API Management instance and click on APIs from the left menu.

  2. Selezionare l'API desiderata.Select your desired API.

  3. Fare clic su editor di codice dall'elenco a discesa sulla freccia nel l'elaborazione in ingresso.Click Code editor from the arrow dropdown in the Inbound processing.

    Editor di codice API

  4. Usare i criteri set-backend combinati con condizionalechoose per creare un criterio di routing appropriato nella <inbound> </inbound> sezione del file.Use the set-backend combined with conditional choose policies to construct a proper routing policy in the <inbound> </inbound> section of the file.

    Ad esempio, il file XML seguente funzionerà per le aree Stati Uniti occidentali e Asia orientale: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>
    

Suggerimento

È anche possibile rivolgersi ai servizi back-end con Gestione traffico di Azure, indirizzare le chiamate API a gestione traffico e consentire la risoluzione automatica del routing.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.

Usare il routing personalizzato ai gateway regionali di gestione API Use custom routing to API Management regional gateways

Gestione API instrada le richieste a un gateway a livello di area in base alla latenza più bassa.API Management routes the requests to a regional gateway based on the lowest latency. Sebbene non sia possibile eseguire l'override di questa impostazione in gestione API, è possibile usare gestione traffico con regole di routing personalizzate.Although it is not possible to override this setting in API Management, you can use your own Traffic Manager with custom routing rules.

  1. Creare Gestione traffico di Azure.Create your own Azure Traffic Manager.
  2. Se si usa un dominio personalizzato, usarlo con gestione traffico invece che con il servizio gestione API.If you are using a custom domain, use it with the Traffic Manager instead of the API Management service.
  3. Configurare gli endpoint regionali di gestione API in gestione traffico.Configure the API Management regional endpoints in Traffic Manager. Gli endpoint internazionali seguono il modello di URL https://<service-name>-<region>-01.regional.azure-api.net , ad esempio 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. Configurare gli endpoint di stato locale di gestione API in gestione traffico.Configure the API Management regional status endpoints in Traffic Manager. Gli endpoint di stato regionali seguono il modello di URL https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdef , ad esempio 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. Specificare il metodo di routing di gestione traffico.Specify the routing method of the Traffic Manager.