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:
Valfri zonredundans, om den regionen stöder det.
Inställningar för virtuella nätverk i den tillagda regionen, om nätverk har konfigurerats i den befintliga regionen eller regionerna.
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. I internt VNet-läge måste kunderna konfigurera sin egen lösning för att dirigera och belastningsutjämningstrafik över de regionala gatewayerna. Mer information finns i Nätverksöverväganden.
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.net
för , till exempelhttps://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 och undernät på den plats som du planerar att lägga till och inom samma prenumeration. Om du vill aktivera zonredundans konfigurerar du även en ny offentlig IP-adress. Se krav för virtuellt nätverk.
Distribuera API Management-tjänsten till ytterligare en region
- I Azure-portalen går du till DIN API Management-tjänst och väljer Platser på den vänstra menyn.
- Välj + Lägg till i det övre fältet.
- Välj den tillagda platsen i listrutan.
- Välj antalet skalningsenheter på platsen.
- Du kan också välja en eller flera tillgänglighetszoner.
- Om API Management-instansen distribueras i ett virtuellt nätverk konfigurerar du inställningar för virtuella nätverk på platsen, inklusive virtuellt nätverk, undernät och offentlig IP-adress (om du aktiverar tillgänglighetszoner).
- Välj Lägg till för att bekräfta.
- Upprepa den här processen tills du konfigurerar alla platser.
- Välj Spara i det övre fältet för att starta distributionsprocessen.
Ta bort en API Management-tjänstregion
- I Azure-portalen går du till DIN API Management-tjänst och väljer Platser på den vänstra menyn.
- För den plats som du vill ta bort väljer du snabbmenyn med knappen ... till höger i tabellen. Välj Ta bort.
- 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.
Gå till din Azure API Management-instans och välj API:er på den vänstra menyn.
Välj önskat API.
Välj Kodredigeraren i listrutan pil i den inkommande bearbetningen.
Använd kombinerat
set-backend
med villkorsprinciperchoose
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.
- Skapa en egen Azure Traffic Manager.
- Om du använder en anpassad domän använder du den med Traffic Manager i stället för API Management-tjänsten.
- 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.net
för , till exempelhttps://contoso-westus2-01.regional.azure-api.net
. - 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-0123456789abcdef
för , till exempelhttps://contoso-westus2-01.regional.azure-api.net/status-0123456789abcdef
. - 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:
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
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.
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 1433 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 används 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.
Nästa steg
Läs mer om att konfigurera API Management för hög tillgänglighet.
Läs mer om zonredundans för att förbättra tillgängligheten för en API Management-instans i en region.
Mer information om virtuella nätverk och API Management finns i: