Distribuera en Azure API Management-tjänstinstans till flera Azure-regioner

GÄLLER FÖR: Premium

Azure API Management stöder distribution i flera regioner, vilket gör det möjligt för API-utgivare att lägga till regionala API-gatewayer till en befintlig API Management-instans i en eller flera Azure-regioner som stöds. Distribution i flera regioner bidrar till att minska svarstiden för begäranden som uppfattas av geografiskt distribuerade API-konsumenter och förbättrar tjänstens tillgänglighet om en region kopplas från.

När du lägger till en region konfigurerar du:

Viktigt!

Funktionen för att aktivera lagring av kunddata i en enda region är för närvarande endast tillgänglig i Sydostasien (Singapore) i Asien och stillahavsområdets Geo. För alla andra regioner lagras kunddata i Geo.

Om distribution i flera regioner

  • Endast gatewaykomponenten i din API Management-instans replikeras till flera regioner. Instansens hanteringsplan och utvecklarportalen finns endast i den primära regionen, den region där du ursprungligen distribuerade tjänsten.

  • Om du vill konfigurera en sekundär plats för DIN API Management-instans när den distribueras (matas in) i ett virtuellt nätverk, bör regionen VNet och undernätet matcha med den sekundära plats som du konfigurerar. Om du lägger till, tar bort eller aktiverar tillgänglighetszonen i den primära regionen, eller om du ändrar undernätet för den primära regionen, ändras VIP-adressen för DIN API Management-instans. Mer information finns i IP-adresser för Azure API Management-tjänsten. Men om du lägger till en sekundär region ändras inte den primära regionens VIP eftersom varje region har sin egen privata VIP.

  • Gatewaykonfigurationer som API:er och principdefinitioner synkroniseras regelbundet mellan de primära och sekundära regioner som du lägger till. Det tar normalt mindre än 10 sekunder att sprida uppdateringar till de regionala gatewayerna. Distribution i flera regioner ger tillgänglighet för API-gatewayen i mer än en region och ger tjänsttillgänglighet om en region kopplas från.

  • När API Management tar emot offentliga HTTP-begäranden till Traffic Manager-slutpunkten (gäller för det externa virtuella nätverket och icke-nätverksbaserade lägen för API Management) dirigeras trafiken till en regional gateway baserat på lägsta svarstid, vilket kan minska svarstiden för geografiskt distribuerade API-konsumenter.

  • Gatewayen i varje region (inklusive den primära regionen) har ett regionalt DNS-namn som följer URL-mönstret https://<service-name>-<region>-01.regional.azure-api.netför , till exempel https://contoso-westus2-01.regional.azure-api.net.

  • Om en region kopplas från dirigeras API-begäranden automatiskt runt den misslyckade regionen till nästa närmaste gateway.

  • Om den primära regionen kopplas från blir API Management-hanteringsplanet och utvecklarportalen otillgängliga, men sekundära regioner fortsätter att hantera API-begäranden med den senaste gatewaykonfigurationen.

Förutsättningar

  • Om du inte har skapat en API Management-tjänstinstans kan du läsa Skapa en API Management-tjänstinstans. Välj premiumtjänstnivån.
  • Om DIN API Management-instans distribueras i ett virtuellt nätverk kontrollerar du att du konfigurerar ett virtuellt nätverk, undernät och en offentlig IP-adress på den plats som du planerar att lägga till och inom samma prenumeration. Se krav för virtuellt nätverk.

Distribuera API Management-tjänsten till ytterligare en region

  1. I Azure-portalen går du till DIN API Management-tjänst och väljer Platser på den vänstra menyn.
  2. Välj + Lägg till i det övre fältet.
  3. Välj den tillagda platsen i listrutan.
  4. Välj antalet skalningsenheter på platsen.
  5. Du kan också välja en eller flera tillgänglighetszoner.
  6. Om API Management-instansen distribueras i ett virtuellt nätverk konfigurerar du inställningar för virtuella nätverk på platsen. Välj ett befintligt virtuellt nätverk, undernät och en offentlig IP-adress som är tillgänglig på platsen.
  7. Välj Lägg till för att bekräfta.
  8. Upprepa den här processen tills du konfigurerar alla platser.
  9. Välj Spara i det övre fältet för att starta distributionsprocessen.

Ta bort en API Management-tjänstregion

  1. I Azure-portalen går du till DIN API Management-tjänst och väljer Platser på den vänstra menyn.
  2. För den plats som du vill ta bort väljer du snabbmenyn med knappen ... till höger i tabellen. Välj Ta bort.
  3. Bekräfta borttagningen och välj Spara för att tillämpa ändringarna.

Dirigera API-anrop till regionala serverdelstjänster

Som standard dirigerar varje API begäranden till en enda url för serverdelstjänsten. Även om du har konfigurerat Azure API Management-gatewayer i olika regioner vidarebefordrar API-gatewayen fortfarande begäranden till samma serverdelstjänst, som endast distribueras i en region. I det här fallet kommer prestandavinsten endast från svar som cachelagrats i Azure API Management i en region som är specifik för begäran. att kontakta serverdelen över hela världen kan fortfarande orsaka långa svarstider.

Om du vill dra nytta av den geografiska distributionen av systemet bör du ha serverdelstjänster distribuerade i samma regioner som Azure API Management-instanser. Med hjälp av principer och @(context.Deployment.Region) egenskaper kan du sedan dirigera trafiken till lokala instanser av serverdelen.

  1. Gå till din Azure API Management-instans och välj API:er på den vänstra menyn.

  2. Välj önskat API.

  3. Välj Kodredigeraren i listrutan pil i den inkommande bearbetningen.

    API-kodredigeraren

  4. Använd kombinerat set-backend med villkorsprinciper choose för att skapa en korrekt routningsprincip i <inbound> </inbound> avsnittet i filen.

    Följande XML-fil skulle till exempel fungera för regionerna USA, västra och Asien, östra:

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

Använda Traffic Manager för routning till regionala serverdelar

Du kan också fronta dina serverdelstjänster med Azure Traffic Manager, dirigera API-anropen till Traffic Manager och låta det lösa routningen automatiskt.

  • För trafikdistribution och redundans rekommenderar vi att du använder Traffic Manager med metoden Geografisk routning. Vi rekommenderar inte att du använder Traffic Manager med metoden Viktad routning med API Management-serverdelar.

  • För trafikkontroll under underhållsåtgärder rekommenderar vi att du använder metoden Prioritetsroutning.

Använda anpassad routning till regionala API Management-gatewayer

API Management dirigerar begäranden till en regional gateway baserat på den lägsta svarstiden. Även om det inte går att åsidosätta den här inställningen i API Management kan du använda din egen Traffic Manager med anpassade routningsregler.

  1. Skapa en egen Azure Traffic Manager.
  2. Om du använder en anpassad domän använder du den med Traffic Manager i stället för API Management-tjänsten.
  3. Konfigurera de regionala API Management-slutpunkterna i Traffic Manager. De regionala slutpunkterna följer URL-mönstret https://<service-name>-<region>-01.regional.azure-api.netför , till exempel https://contoso-westus2-01.regional.azure-api.net.
  4. Konfigurera de regionala statusslutpunkterna för API Management i Traffic Manager. De regionala statusslutpunkterna följer URL-mönstret https://<service-name>-<region>-01.regional.azure-api.net/status-0123456789abcdefför , till exempel https://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef.
  5. Ange routningsmetoden för Traffic Manager.

Inaktivera routning till en regional gateway

Under vissa förhållanden kan du tillfälligt behöva inaktivera routning till en av de regionala gatewayerna. Till exempel:

  • När du har lagt till en ny region kan du behålla den inaktiverad när du konfigurerar och testar den regionala serverdelstjänsten
  • Under regelbundet serverdelsunderhåll i en region
  • Om du vill omdirigera trafik till andra regioner under ett planerat haveriberedskapstest som simulerar en otillgänglig region eller under ett regionalt fel

Om du vill inaktivera routning till en regional gateway i DIN API Management-instans uppdaterar du gatewayens egenskapsvärde disableGateway till true. Du kan ange värdet med hjälp av REST-API:et För att skapa eller uppdatera tjänsten , kommandot az apim update i Azure CLI, azure PowerShell-cmdleten set-azapimanagement eller andra Azure-verktyg.

Kommentar

Du kan bara inaktivera routning till en regional gateway när du använder API Managements standardroutning, inte en anpassad routningslösning.

Så här inaktiverar du en regional gateway med hjälp av Azure CLI:

  1. Använd kommandot az apim show för att visa platser, gatewaystatus och regionala URL:er som konfigurerats för API Management-instansen.

    az apim show --name contoso --resource-group apim-hello-world-resource \
        --query "additionalLocations[].{Location:location,Disabled:disableGateway,Url:gatewayRegionalUrl}" \
        --output table
    

    Exempel på utdata>

    Location    Disabled    Url
    ----------  ----------  ------------------------------------------------------------
    West US 2   True        https://contoso-westus2-01.regional.azure-api.net
    West Europe True        https://contoso-westeurope-01.regional.azure-api.net
    
  2. Använd kommandot az apim update för att inaktivera gatewayen på en tillgänglig plats, till exempel USA, västra 2.

    az apim update --name contoso --resource-group apim-hello-world-resource \
    --set additionalLocations[location="West US 2"].disableGateway=true
    

    Uppdateringen kan ta några minuter.

  3. Kontrollera att trafik som dirigeras till den regionala gateway-URL:en omdirigeras till en annan region.

Om du vill återställa routningen till den regionala gatewayen anger du värdet disableGateway för till false.

Virtuellt nätverk

Det här avsnittet innehåller överväganden för distributioner i flera regioner när API Management-instansen matas in i ett virtuellt nätverk.

  • Konfigurera varje regionalt nätverk oberoende av varandra. Anslutningskrav som obligatoriska regler för nätverkssäkerhetsgrupper för ett virtuellt nätverk i en tillagd region är vanligtvis desamma som för ett nätverk i den primära regionen.
  • Virtuella nätverk i de olika regionerna behöver inte vara peer-kopplade.

Viktigt!

När de konfigureras i internt VNet-läge måste varje regional gateway också ha utgående anslutning på port 1443 till Azure SQL-databasen som konfigurerats för din API Management-instans, som endast finns i den primära regionen. Se till att du tillåter anslutning till FQDN eller IP-adressen för den här Azure SQL-databasen i alla vägar eller brandväggsregler som du konfigurerar för nätverk i dina sekundära regioner. Azure SQL-tjänsttaggen kan inte användas i det här scenariot. Om du vill hitta Namnet på Azure SQL-databasen i den primära regionen går du till sidan Nätverksstatus> för DIN API Management-instans i portalen.

IP-adresser

  • En offentlig virtuell IP-adress skapas i varje region som läggs till med ett virtuellt nätverk. För virtuella nätverk i antingen externt läge eller internt läge krävs den här offentliga IP-adressen för hantering av trafik på porten 3443.

    • Externt VNet-läge – De offentliga IP-adresserna krävs också för att dirigera offentlig HTTP-trafik till API-gatewayerna.

    • Internt VNet-läge – En privat IP-adress skapas också i varje region som läggs till med ett virtuellt nätverk. Använd dessa adresser för att ansluta i nätverket till API Management-slutpunkterna i de primära och sekundära regionerna.

Routning

  • Externt VNet-läge – Routning av offentlig HTTP-trafik till de regionala gatewayerna hanteras automatiskt, på samma sätt som för en instans av API Management som inte är nätverksanslutet.

  • Internt VNet-läge – Privat HTTP-trafik dirigeras inte eller belastningsutjämnas inte till de regionala gatewayerna som standard. Användarna äger routningen och ansvarar för att ta med en egen lösning för att hantera routning och privat belastningsutjämning i flera regioner. Exempellösningar är Azure Application Gateway och Azure Traffic Manager.

Nästa steg