Wird AWS Lambda zur Behandlung von Ereignissen EventBridge verwendet - Amazon EBS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wird AWS Lambda zur Behandlung von Ereignissen EventBridge verwendet

Sie können Amazon EBS und Amazon verwenden, EventBridge um Ihren Datensicherungsablauf zu automatisieren. Dazu müssen Sie eine IAM-Richtlinie, eine AWS Lambda Funktion zur Behandlung des Ereignisses und eine EventBridge Regel erstellen, die eingehende Ereignisse abgleicht und sie an die Lambda-Funktion weiterleitet.

Für das folgende Verfahren wird das Ereignis createSnapshot verwendet, um einen abgeschlossenen Snapshot zur Notfallwiederherstellung automatisch in eine andere Region zu kopieren.

Kopieren eines abgeschlossenen Snapshots in eine andere Region
  1. Erstellen Sie eine IAM-Richtlinie, wie die im folgenden Beispiel gezeigte, um Berechtigungen zur Verwendung der CopySnapshot Aktion und zum Schreiben in das Protokoll zu gewähren. EventBridge Weisen Sie die Richtlinie dem Benutzer zu, der das EventBridge Ereignis behandeln wird.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "ec2:CopySnapshot" ], "Resource": "*" } ] }
  2. Definieren Sie eine Funktion in Lambda, die von der EventBridge Konsole aus verfügbar sein wird. Die folgende Lambda-Beispielfunktion, geschrieben in Node.js, wird aufgerufen, EventBridge wenn ein entsprechendes createSnapshot Ereignis von Amazon EBS ausgelöst wird (was bedeutet, dass ein Snapshot abgeschlossen wurde). Nach der Auslösung kopiert die Funktion den Snapshot von us-east-2 nach us-east-1.

    // Sample Lambda function to copy an EBS snapshot to a different Region var AWS = require('aws-sdk'); var ec2 = new AWS.EC2(); // define variables var destinationRegion = 'us-east-1'; var sourceRegion = 'us-east-2'; console.log ('Loading function'); //main function exports.handler = (event, context, callback) => { // Get the EBS snapshot ID from the event details var snapshotArn = event.detail.snapshot_id.split('/'); const snapshotId = snapshotArn[1]; const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`; console.log ("snapshotId:", snapshotId); // Load EC2 class and update the configuration to use destination Region to initiate the snapshot. AWS.config.update({region: destinationRegion}); var ec2 = new AWS.EC2(); // Prepare variables for ec2.modifySnapshotAttribute call const copySnapshotParams = { Description: description, DestinationRegion: destinationRegion, SourceRegion: sourceRegion, SourceSnapshotId: snapshotId }; // Execute the copy snapshot and log any errors ec2.copySnapshot(copySnapshotParams, (err, data) => { if (err) { const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(errorMessage); console.log(err); callback(errorMessage); } else { const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(successMessage); console.log(data); callback(null, successMessage); } }); };

    Um sicherzustellen, dass Ihre Lambda-Funktion in der EventBridge Konsole verfügbar ist, erstellen Sie sie in der Region, in der das EventBridge Ereignis eintreten wird. Weitere Informationen finden Sie im AWS Lambda -Entwicklerhandbuch.

  3. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  4. Wählen Sie im Navigationsbereich Rules (Regeln) und anschließend Create rule (Regel erstellen) aus.

  5. Gehen Sie bei Schritt 1: Regeldetail festlegen folgendermaßen vor:

    1. Geben Sie einen Name (Namen) und eine Description (Beschreibung) ein.

    2. Behalten Sie für Event bus (Event Bus) default (Standard) bei.

    3. Vergewissern Sie sich, dass Enable the rule on the selected event bus (Regel auf dem ausgewählten Event Bus aktivieren) eingeschaltet ist.

    4. Bei Event type (Ereignistyp) wählen Sie Rule with an event pattern (Regel mit einem Ereignismuster) aus.

    5. Wählen Sie Weiter.

  6. Bei Schritt 2: Ereignismuster erstellen gehen Sie wie folgt vor:

    1. Wählen Sie unter Eventquelle AWS Events oder EventBridge Partnerevents aus.

    2. Stellen Sie sicher, dass im Abschnitt Ereignismuster für Ereignisquelle die Option AWS Dienst ausgewählt ist, und wählen Sie für AWS Dienst die Option aus EC2.

    3. Wählen Sie für Event type (Ereignistyp) EBS Snapshot Notification (EBS-Snapshot-Benachrichtigung) aus, dann Specific event(s) (Spezifische Ereignisse) und dann createSnapshot.

    4. Wählen Sie Spezifische(s) Ergebnis(se) und dann Erfolgreich aus.

    5. Wählen Sie Weiter.

  7. Gehen Sie bei Schritt 3: Ziele auswählen wie folgt vor:

    1. Bei Zieltypen wählen Sie AWS -Service aus.

    2. Wählen Sie bei Select target (Ziel auswählen) Lambda function (Lamda-Funktion) und bei Function (Funktion) die zuvor von Ihnen erstellte Funktion aus.

    3. Wählen Sie Next (Weiter)

  8. Bei Step 4: Configure tags (Schritt 4: Tags konfigurieren) geben Sie bei Bedarf Tags für die Regel an und wählen Sie dann Next (Weiter).

  9. Bei Step 5: Review and create (Schritt 5: Überprüfen und erstellen) überprüfen Sie die Regel und wählen Sie dann Create rule (Regel erstellen).

Ihre Regel sollte jetzt auf der Registerkarte Rules (Regeln) erscheinen. Im gezeigten Beispiel sollte das von Ihnen konfigurierte Ereignis von EBS beim nächsten Kopieren eines Snapshot gesendet werden.