Flytta Azure Container Apps till en annan region

Den här artikeln beskriver hur du flyttar en Azure Container Apps-arbetsbelastning till en annan Azure-region genom att återskapa den hanterade miljön och containerapparna i målregionen. Processen omfattar export av programkonfiguration, omdistribuering av resurser, validering av distributionen och rensning av resurser i källregionen.

Important

Azure Container Apps stöder inte regionmigrering på plats. Du återskapar resurser i målregionen – befintliga resurser flyttas inte. Den här artikeln beskriver hur du flyttar konfiguration och infrastruktur för Container Apps. Den omfattar inte replikering av programdata, databaser eller andra tillståndskänsliga beroenden.

Förutsättningar

Innan du börjar kontrollerar du att du uppfyller följande krav:

  • Azure Container Apps är tillgängligt i målregionen.
  • Målregionen stöder samma funktioner, arbetsbelastningsprofiler och nätverksalternativ som du använder i källregionen.
  • Du har tillräcklig kvot i målregionen för de resurser som du planerar att distribuera.
  • Du har följande behörigheter i både käll- och målprenumerationerna:
    • Ägare eller deltagare i resursgruppen.
    • Container Apps Contributor (rekommenderad). Denna roll inkluderar jokerbehörigheter som ger åtkomst till Container Apps hemliga värden. För snävare åtkomst, se Behörigheter för hantering av hemligheter.
  • Dina containeravbildningar finns i ett register som är tillgängligt från målregionen (till exempel Azure Container Registry eller ett externt register som stöds).
  • Beroende Azure-resurser som Key Vault, lagringskonton, databaser, virtuella nätverk och meddelandetjänster är antingen redan tillgängliga i målregionen eller har en omdistributionsplan.

Tips/Råd

Om du använder Azure Container Registry (ACR) bör du överväga att aktivera geo-replikering för att göra avbildningar tillgängliga i målregionen utan att distribuera om registret.

az acr replication create --registry <REGISTRY_NAME> --location <TARGET_REGION>

Förstå krav på stilleståndstid

Azure Container Apps stöder inte direkt regionmigrering. Nertid orsakas främst av DNS-spridning och ändringar i trafikdirigering under implementering. Så här minimerar du påverkan:

  1. Distribuera och verifiera containerappen i målregionen först.
  2. Sänk DNS TTL-värden i förväg (till exempel till 60 sekunder) så att routningsändringar sprids snabbt.
  3. Omdirigera produktionstrafik till den nya slutpunkten först när valideringen har slutförts.
  4. Håll appen för källcontainer igång tills du bekräftar att måldistributionen är i gott skick.

Prepare

För att förbereda för omlokalisering exporterar du källkonfigurationen och granskar alla regionspecifika inställningar.

Identifiera beroenden

Följande beroende resurser måste finnas i målregionen före cutover:

  • Azure 密钥保管库
  • Lagringskonton
  • Databaser och meddelandetjänster (till exempel Azure Service Bus, Azure Cosmos DB)
  • Virtuella nätverk, undernät och privata slutpunkter
  • Nätverkssäkerhetsgrupper (NSG:er) och användardefinierade vägar (UDR)
  • Privata DNS-zoner
  • Log Analytics arbetsytor
  • Dapr-komponenter (om de används)

Important

Hemligheter, certifikat, anpassade domäner och säkra konfigurationsvärden bevaras inte i exporterade mallar. Du måste återskapa dessa resurser manuellt i målregionen från deras ursprungliga källor.

Planera för ändringar av hanterad identitet

Hanterad identitet beror på identitetstypen:

  • Systemtilldelad identitet: När du återskapar containerappen genererar Azure ett nytt huvudnamns-ID. Du måste tilldela om alla RBAC-roller, Key Vault-åtkomstprinciper och underordnade tjänstbehörigheter till den nya identiteten.

  • Användartilldelad identitet: Användartilldelade hanterade identiteter är regionala resurser och kan inte flyttas mellan regioner. Skapa en ny användartilldelad identitet i målregionen och tilldela nödvändiga behörigheter före distributionen.

Exportera källkonfigurationen

Använd Azure-portalen för att exportera ARM-mallar för både den hanterade miljön Container Apps och enskilda containerappar.

  1. Logga in på Azure-portalen.
  2. Gå till antingen den hanterade miljön för Container Apps eller containerappresursen.
  3. På den vänstra menyn väljer du Automation>Export-mall.
  4. Välj Ladda ned och extrahera .zip filen till en lokal mapp.

De extraherade filerna omfattar:

File Description
template.json Definition av resurskonfiguration
Parameterfiler Parametervärden för distribution
Distributionsskript Skript för mallkörning

Note

Exporterade mallar fungerar som utgångspunkt för att förstå konfigurationen. De kan innehålla skrivskyddade egenskaper som du behöver ta bort och de innehåller inte hemligheter eller certifikatvärden. Granska de exporterade utdata noggrant innan du använder dem för omdistribution.

Ändra mallen för hanterad miljö

Uppdatera den exporterade konfigurationen innan du distribuerar om den hanterade miljön:

  • Uppdatera platsen: Ange location egenskapen till azure-målregionen.
  • Verifiera resursnamn: Kontrollera att namnet på den hanterade miljön är unikt inom målresursgruppen och regionen.
  • Granska Log Analytics-konfigurationen: Uppdatera referensen för Log Analytics-arbetsytan om arbetsytan är regionspecifik. Du kan behöva skapa en ny arbetsyta i målregionen.
  • Ta bort skrivskyddade egenskaper: Om du exporterade från portalen tar du bort egenskaper som id, type, systemDataoch andra skrivskyddade fält som orsakar distributionsfel.

Ändra mallen för containerappen

När du har exporterat konfigurationen av containerappen gör du följande ändringar:

  • Uppdatera referensen för den hanterade miljön: Ersätt managedEnvironmentId med resurs-ID:t för den nya hanterade miljön i målregionen. Hanterade miljöer är regionbundna och kan inte återanvändas mellan regioner.

  • Verifiera referenser till containeravbildning: Bekräfta att avbildningsreferenser pekar på ett containerregister som är tillgängligt från målregionen. Om du har aktiverat geo-replikering av ACR kan befintliga referenser fungera utan ändringar.

  • Granska ingresskonfigurationen: Efter omdistributionen ändras det fullständigt kvalificerade domännamnet (FQDN). Planera för att uppdatera anpassade DNS-poster och trafikroutning under övergång.

  • Konfigurera om hemligheter och appinställningar: Återskapa hemligheter med hjälp av Azure Key Vault-referenser eller programkonfiguration. Förlita dig inte på exporterade värden för känsliga inställningar.

  • Uppdatera Dapr-komponenter: Om du använder Dapr kontrollerar du att Dapr-komponentkonfigurationer refererar till resurser som är tillgängliga i målregionen (till exempel delstatslager, pub-/underkoordinatorer, hemliga butiker).

  • Uppdatera diagnostik och övervakning: Verifiera Log Analytics-arbetsytereferenser och konfigurera om diagnostikinställningar efter behov.

Återplacera

Hanterade miljöer i Azure Container Apps är regionbundna. Skapa den hanterade miljön i målregionen innan du distribuerar om alla containerappar.

Distribuera den hanterade miljön

  1. Gå till målresursgruppen i Azure-portalen.
  2. Välj Distribuera en anpassad mall.
  3. Välj Skapa en egen mall i redigeraren och ladda upp den ändrade ARM-mallen.
  4. Granska distributionsinställningarna och välj sedan Granska + skapa för att starta distributionen.

Verifiera åtkomst till containerregister

Innan du distribuerar containerappen kontrollerar du att den identitet som används av containerappen (systemtilldelad eller användartilldelad hanterad identitet) har tilldelats rollen AcrPull i Azure Container Registry-målet.

az role assignment create \
  --assignee <IDENTITY_PRINCIPAL_ID> \
  --role AcrPull \
  --scope <ACR_RESOURCE_ID>

Note

Om containerappen refererar till en ACR i en annan prenumeration eller region kontrollerar du att nödvändiga behörigheter har konfigurerats i förväg för att förhindra avbildningshämtningsfel under distributionen.

Driftsätt containerappen

  1. Gå till målresursgruppen i Azure-portalen.
  2. Välj Distribuera en anpassad mall.
  3. Ladda upp den ändrade ARM-mallen för containerappen.
  4. Granska inställningarna och slutför distributionen.

Konfigurera nätverk

Efter distributionen konfigurerar du om nätverken så att de matchar källkonfigurationen:

  1. Konfigurera inkommande: Konfigurera offentlig eller privat ingress baserat på programmets exponeringsmodell.

  2. Återverkställ VNet-integrering: Om containerappen använder privata nätverk konfigurerar du i målregionen VNet, undernät, privata slutpunkter och privata DNS-zoner.

  3. Uppdatera NSG:er och UDR:er: Återskapa nätverkssäkerhetsgrupper och användardefinierade vägar efter behov.

  4. Uppdatera LISTAN över TILLÅTNA IP-adresser: Om underordnade tjänster använder IP-baserade tillåtna listor uppdaterar du dem med de nya utgående IP-adresserna från målregionmiljön.

  5. Konfigurera anpassade domäner och certifikat: Anpassade domäner och TLS-certifikat överförs inte under omlokaliseringen. Konfigurera om dem i den nya containerappen och uppdatera DNS-poster.

Omkoppla trafiken

Efter valideringen omdirigerar du trafik till distributionen för målregionen:

  1. Om du sänkte DNS TTL tidigare uppdaterar du DNS-poster så att de pekar på den nya containerappens FQDN.

  2. Om du använder Azure Front Door eller Azure Traffic Manager uppdaterar du serverdelspoolen eller slutpunkten för att inkludera containerappen för målregionen och tar bort slutpunkten för källregionen.

  3. Övervaka trafiken för att bekräfta att begäranden når den nya distributionen.

Tips/Råd

Se till att källcontainerappen körs under återställningsfönstret. Om det uppstår problem återställer du DNS- eller trafikroutning till källslutpunkten tills du löser problemet.

Kontrollera

Validera följande efter trafikomläggningen:

  • Programtillgänglighet och svarstider.
  • Skalningsbeteende under förväntad och högsta belastning.
  • Anslutning till beroende tjänster som databaser, Key Vault, lagring och meddelanden.
  • Hanterad identitetsåtkomst till underordnade resurser.
  • Dapr-komponentfunktionalitet, om den används.
  • Loggar och mått som flödar till Azure Monitor och Log Analytics.

Verifiera med hjälp av CLI:

# Confirm the container app is running
az containerapp show \
  --name <APP_NAME> \
  --resource-group <TARGET_RESOURCE_GROUP> \
  --query "{status:properties.runningStatus, fqdn:properties.configuration.ingress.fqdn}" \
  --output table

# Test the application endpoint
curl -s -o /dev/null -w "%{http_code}" https://<APP_FQDN>/health

Important

Håll källcontainerappen igång tills verifieringen är klar och måldistributionen bekräftas felfri. Definiera ett återställningsfönster, till exempel 24 till 48 timmar, innan du rensar upp källresurser.

Rensa källresurser

Efter lyckad validering och trafikomläggning:

  1. Ta bort källcontainerappen.
  2. Ta bort den källhanterade miljön om du inte längre behöver den.
  3. Ta bort oanvända containeravbildningar, nätverksresurser och identitetstilldelningar för att undvika onödiga avgifter.
  4. Uppdatera alla övervakningspaneler eller aviseringsregler som refererar till källresurserna.

Limitations

  • Azure Container Apps stöder inte flytt direkt på plats eller i en dynamisk region.
  • Du måste återskapa hemligheter, certifikat och anpassade domäner.
  • Revisionshistoriken behålls inte i måldistributionen.
  • Stilleståndstid krävs under övergång.
  • Systemanvisade huvudidentifierare för hanterad identitet ändras, så du måste återskapa alla RBAC-behörighetstilldelningar.
  • Användartilldelade hanterade identiteter är regionala och måste återskapas i målregionen.
  • Utgående IP-adresser ändras, vilket kan påverka nedströms tjänsternas godkända listor.