DE
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Anmelden Kostenlos starten
Lambda

Eine Lambda-Funktion in eine andere Region verschieben, ohne ihre Zeitpläne zu verlieren

Sie wollen eine Lambda-Funktion in einer anderen Region haben (näher an Ihren Daten, wegen des Preises oder aus rechtlichen Gründen) und haben Angst, das kaputt zu machen, was sie jede Nacht ausführt. Was von selbst mitkommt, was nie mitkommt und in welcher Reihenfolge Sie vorgehen, damit die alte weiterläuft, bis Sie die neue geprüft haben.

⏱ 25 Minuten ◎ Für alle Aktualisiert am 29/10/2026

In AWS wird eine Lambda-Funktion nicht verschoben: Man legt eine gleiche in der neuen Region an und schaltet die alte ab oder löscht sie, sobald man geprüft hat, dass die neue funktioniert. Was Angst macht, ist nicht der Code (das ist ein Zip, das man herunterlädt und wieder hochlädt), sondern alles drumherum: der Zeitplan, der sie jede Nacht startet, die öffentliche URL, die Ihre Website benutzt, die Warteschlange, die sie füttert. Ein Teil davon ist regional und kommt nicht mit. Diese Anleitung sagt Ihnen, was mitkommt, was nicht, und die sichere Reihenfolge: zuerst die Kopie, dann der Test, und erst ganz zum Schluss die alte.

Bevor Sie anfangen: was die Begriffe bedeuten

Region
Die Gruppe von Rechenzentren, in der die Funktion lebt (eu-west-1 ist Irland, eu-west-3 ist Paris, eu-south-2 ist Spanien). Fast alles in Lambda ist regional: die Funktion, ihre Protokolle, ihre Regeln.
Zip-Paket
Die Datei mit dem Code der Funktion. Das ist es, was kopiert wird. Funktionen, die als Container-Image gebaut sind, werden anders verschoben (das Image muss in eine ECR-Registry der neuen Region kopiert werden).
Ausführungsrolle
Die Berechtigung, mit der die Funktion läuft (was sie anfassen darf). IAM ist global, also funktioniert dieselbe Rolle in jeder Region: Es muss keine neue angelegt werden.
Zeitplan (EventBridge)
Die Regel „führe sie alle 15 Minuten aus“ oder „jeden Tag um 3:00“. Sie ist regional: Sie muss in der Zielregion neu angelegt werden, mit derselben Häufigkeit.
Öffentliche URL
Die Webadresse der Funktion. Sie enthält die Region: In der neuen Region ändert sich die Adresse, und alles, was sie benutzt hat, muss aktualisiert werden.
Layer
Gemeinsam genutzte Bibliotheken, die die Funktion beim Start lädt. Layer sind regional: Einen eigenen Layer müssen Sie auch in der neuen Region veröffentlichen.

Schritt für Schritt

  1. Machen Sie eine Bestandsaufnahme dessen, was die Funktion umgibt

    Öffnen Sie die Funktion in der Lambda-Konsole und sehen Sie an drei Stellen nach. Unter Konfiguration → Auslöser: was sie ausführt (EventBridge, S3, SNS, API Gateway, eine SQS-Warteschlange). Unter Konfiguration → Funktions-URL: ob sie eine öffentliche URL hat. Unter Code → Layer: ob sie Layer verwendet. Notieren Sie auch Arbeitsspeicher, Timeout, Umgebungsvariablen und die Ausführungsrolle (Konfiguration → Berechtigungen). Mit dieser Liste wissen Sie, was von selbst mitkommt und was Sie neu machen müssen.

  2. Entscheiden Sie, was mitkommt und was nicht

    Unverändert mit kommen: der Code, die Sprache (Runtime), der Handler, der Arbeitsspeicher, die maximale Laufzeit, die Architektur, die Umgebungsvariablen, die Beschreibung und dieselbe Ausführungsrolle. Die öffentlichen Layer von AWS gibt es meist in allen Regionen unter demselben Namen; Ihre eigenen nicht.

    Die Zeitpläne werden im Ziel mit demselben Ausdruck neu angelegt. EventBridge-Ereignisse mit Muster (zum Beispiel „wenn eine Maschine gestoppt wird“) sind regionale Regeln über das, was in dieser Region passiert: Es ergibt keinen Sinn, sie mitzunehmen; bei Bedarf werden neue angelegt. Warteschlangen und Streams (SQS, DynamoDB, Kinesis) bleiben in ihrer Region und rufen weiter die alte Funktion auf. S3-Benachrichtigungen erreichen nur Funktionen in der Region des Buckets. SNS erlaubt Abonnements zwischen Regionen, aber die neue Funktion muss von Hand abonniert werden. API Gateway muss auf die neue Funktion gezeigt werden. Und die Protokolle und Metriken bleiben, wo sie waren: Die neue Funktion startet mit leerer Historie.

  3. Laden Sie den Code herunter und legen Sie die Funktion in der neuen Region an

    In der alten Funktion, Code → Aktionen → Funktion exportieren → Bereitstellungspaket herunterladen: Das gibt Ihnen das Zip. Wechseln Sie oben rechts die Region, Funktion erstellen, derselbe Name, dieselbe Runtime und Architektur, und unter Berechtigungen → Standard-Ausführungsrolle ändern → Vorhandene Rolle verwenden wählen Sie die Rolle der alten. Danach Hochladen von → .zip-Datei mit dem, das Sie heruntergeladen haben. Setzen Sie unter Allgemeine Konfiguration denselben Arbeitsspeicher und dasselbe Timeout; unter Umgebungsvariablen dieselben. Warten Sie, bis der Status nicht mehr „Ausstehend“ ist.

    Wenn Sie die CLI verwenden, ist es ein einziger Befehl ausgehend vom Zip:

    aws lambda create-function --region eu-west-3 --function-name mi-funcion \
      --runtime python3.12 --handler lambda_function.lambda_handler \
      --role arn:aws:iam::123456789012:role/mi-rol --zip-file fileb://mi-funcion.zip \
      --memory-size 256 --timeout 60 --environment Variables={CLAVE=valor}
  4. Legen Sie die Zeitpläne und die URL neu an

    Öffnen Sie in der neuen Region EventBridge → Regeln → Regel erstellen mit demselben Namen und demselben Ausdruck wie die alte (kopieren Sie ihn aus der Originalregel: rate(15 minutes), cron(0 3 * * ? *)). Ziel: die neue Funktion. EventBridge fügt die Berechtigung, sie aufzurufen, selbst hinzu. Wenn die Originalregel deaktiviert war, lassen Sie die neue ebenfalls deaktiviert: Sie aktivieren sie, wenn Sie die alte abschalten.

    Wenn sie eine öffentliche URL hatte, Konfiguration → Funktions-URL → Funktions-URL erstellen, derselbe Authentifizierungstyp. Notieren Sie die neue Adresse: Sie müssen sie in der Website oder dem Programm ändern, das sie aufgerufen hat.

  5. Testen Sie die neue, während beide eingeschaltet sind

    Während Sie prüfen, existieren beide Funktionen und beide Zeitpläne laufen. Wenn es der Aufgabe nichts ausmacht, wiederholt zu werden (ein Bericht, eine Bereinigung), lassen Sie es einen Tag so und vergleichen Sie die CloudWatch-Protokolle der beiden. Wenn Wiederholen ein Problem ist (sie verschickt E-Mails, bucht ab, schreibt in eine Datenbank), legen Sie den neuen Zeitplan deaktiviert an, testen Sie die neue Funktion von Hand mit der Schaltfläche Testen und einem echten Ereignis, und machen Sie im nächsten Schritt den Wechsel auf einmal.

  6. Schalten Sie die alte ab, löschen Sie sie noch nicht

    Sorgen Sie zuerst dafür, dass die alte nicht mehr laufen kann: Konfiguration → Parallelität → Parallelität reservieren → 0. Damit weist AWS alle ihre Ausführungen ab, aber Code und Regeln bleiben da, falls Sie in einer Minute zurück müssen. Deaktivieren Sie auch ihre EventBridge-Regel, damit sie keine Fehler ansammelt. Aktivieren Sie die Regel der neuen. Ändern Sie die URL dort, wo sie benutzt wurde, und abonnieren Sie SNS oder API Gateway neu, falls vorhanden.

  7. Löschen Sie die alte, wenn eine Woche lang Ruhe war

    Nach einer Woche ohne Zwischenfälle löschen Sie die alte EventBridge-Regel und danach die Funktion (Aktionen → Löschen). Die alten Protokolle bleiben in CloudWatch Logs: Sie werden weder gelöscht noch brauchen Sie sie für die neue Funktion, aber es lohnt sich, ihnen eine Aufbewahrung zu geben (zum Beispiel 90 Tage), damit sie nicht für immer Kosten verursachen.

Was schiefgehen kann

Die neue Funktion wird angelegt, schlägt aber bei der Ausführung mit „nicht autorisiert“ fehl

Die Ausführungsrolle ist dieselbe, aber das, was die Funktion anfasst (ein Bucket, eine Tabelle, ein Secret), liegt in der alten Region oder ihre Richtlinie beschränkt es auf eine Region. Prüfen Sie in der Rolle die Bedingungen aws:RequestedRegion und die ARNs mit Region, und ob das, was die Funktion benutzt, in der neuen Region existiert oder von dort erreichbar ist.

Beim Anlegen heißt es, der Layer existiere nicht

Layer sind regional. Wenn er Ihrer ist, veröffentlichen Sie ihn in der neuen Region (Lambda → Layer → Layer erstellen mit demselben Zip) und fügen Sie die neue Version der Funktion hinzu. Wenn es ein öffentlicher Layer von AWS ist, suchen Sie seinen ARN für diese Region in der Dokumentation des Layers: Die Region ändert sich und manchmal auch die Versionsnummer.

Sie läuft jede Nacht zweimal

Sie haben beide Zeitpläne aktiviert. Das ist zu erwarten, solange Sie testen; wenn Sie das nicht mehr wollen, deaktivieren Sie die Regel der alten (oder setzen Sie ihre Parallelität auf 0).

Die Website, die die öffentliche URL benutzt hat, funktioniert nicht mehr

Die neue URL ist anders (sie enthält die Region). Ändern Sie die Adresse in der Website. Wenn Sie sie jetzt nicht anfassen können, lassen Sie die alte noch etwas länger eingeschaltet und machen Sie den Wechsel in Ruhe.

Die SQS-Warteschlange ruft weiter die alte auf

Warteschlangen wechseln die Region nicht. Optionen: die alte Funktion als „Brücke“ belassen, die an die neue weiterreicht; eine neue Warteschlange in der Zielregion anlegen und den, der in die Warteschlange schreibt, die Adresse wechseln lassen; oder hinnehmen, dass dieser Teil bleibt, wo er ist.

Und in ein anderes AWS-Konto?

Es ist derselbe Vorgang mit einem wichtigen Unterschied: Die Ausführungsrolle lebt im Konto, also kann die Funktion im neuen Konto nicht die der alten verwenden. Legen Sie dort eine Rolle für Lambda an (oder verwenden Sie eine vorhandene) und geben Sie ihr, wenn die Funktion S3, Datenbanken oder Warteschlangen anfasst, diese Berechtigungen: Die Kopie wird korrekt angelegt, schlägt aber bei der Ausführung fehl, bis die Rolle das darf, was der Code tut. Die Umgebungsvariablen werden unverändert kopiert: Wenn sie Adressen oder Schlüssel des alten Kontos enthalten, ändern Sie sie. Und Warteschlangen, Buckets und APIs wechseln das Konto nicht: Sie müssen neu angelegt oder neu verbunden werden.

In Simplio verlangt „In ein anderes Konto verschieben“ einen Zugriffsschlüssel des anderen Kontos, der unter Zugriffsschlüssel hinterlegt ist, prüft vorher, ob er Berechtigungen zum Anlegen von Funktionen hat, und legt die Kopie mit der Rolle simplio-lambda-ejecucion dieses Kontos an (die aus dem Skript der Hilfe), mit dem Hinweis, dass sie nur Protokolle schreibt und dass Sie diese Rolle erweitern müssen, wenn die Funktion mehr braucht.

In Simplio

In Simplio gibt es in der Karte der Funktion eine Schaltfläche Region wechseln…. Sie wählen die Region, sehen vorher, was mitkommt (Code, Einstellungen, Rolle, Zeitpläne) und was nicht (Warteschlangen, S3-Benachrichtigungen, Protokolle), bestätigen mit dem zweiten Faktor, und die Kopie erscheint mit neu angelegten Zeitplänen, pausiert, wenn sie es waren. Das Original wird nicht angefasst: In seiner Karte bleibt der Hinweis „Kopiert nach … am …; das Original ist weiterhin aktiv“ mit den Schaltflächen Original pausieren und Original löschen, die nur löscht, wenn die Kopie existiert und aktiv ist. Wenn unterwegs etwas schiefgeht, macht Simplio das im Ziel Angelegte rückgängig und erklärt es Ihnen in klaren Worten.

Dasselbe, in AWS und in Simplio

In der AWS-KonsoleIn Simplio
Wissen, was mitkommt und was nichtAuslöser, URL, Layer und Rolle von Hand auf mehreren Seiten durchgehenEine Vorschau in derselben Karte: was mitkommt, was neu angelegt wird und was Sie neu machen müssen, bevor Sie etwas anfassen
Die Kopie anlegenZip herunterladen, Funktion anlegen, Arbeitsspeicher, Zeit, Variablen und Rolle wiederholen; die Regeln eine nach der anderen anlegenEine Schaltfläche „Region wechseln…“: kopiert, wartet, bis sie aktiv ist, legt die Zeitpläne mit derselben Häufigkeit und die URL neu an, falls vorhanden
Wenn etwas auf halbem Weg schiefgehtEs bleibt eine halb angelegte Funktion und lose Regeln, die aufgeräumt werden müssenAlles im Ziel Angelegte wird rückgängig gemacht und das Original nicht angefasst
Die alte abschalten und löschenParallelität auf 0, Regeln deaktivieren, später löschenZwei Schaltflächen in der Karte des Originals: „Original pausieren“ (umkehrbar) und „Original löschen“, die nur wirkt, wenn die Kopie aktiv ist

15 Tage kostenlos testen So funktioniert es

All das, ohne die AWS-Konsole

Simplio ist ein Panel zur Verwaltung Ihrer AWS-Konten: Maschinen, geplante Kopien, Datenbanken, Domains, E-Mail und was AWS Ihnen berechnet, mit Berechtigungen pro Person und Zwei-Faktor-Authentifizierung. Ohne etwas auf Ihren Servern zu installieren.

15 Tage kostenlos starten, ohne Karte

Sind Sie bereits Kunde? Kundenzugang.