Planen von Amazon DynamoDB-Backups mit Lambda, Python und Boto3

Jennifer Aniston
Freigeben: 2024-10-29 10:09:30
nach vorne
902 Leute haben es durchsucht

Angenommen, Sie möchten eine Sicherungskopie einer Ihrer DynamoDB-Tabellen erstellen jeden Tag. Wir möchten Backups auch für einen bestimmten Zeitraum aufbewahren Zeit. Eine einfache Möglichkeit, dies zu erreichen, ist die Verwendung von Amazon CloudWatch Events Regel zum täglichen Auslösen einer AWS Lambda-Funktion. In diesem praktischen AWS-Labor Sie werden mit Boto3 eine Lambda-Funktion in Python schreiben Bibliothek. Um dies einzurichten, müssen Sie eine IAM-Rolle konfigurieren und eine festlegen CloudWatch-Regel und Erstellen einer Lambda-Funktion.

屏幕截图 2024-10-29 094728.png

Erstellen Sie die DynamoDB-Tabelle

Sie können natürlich jede DynamoDB-Tabelle verwenden, die Sie in Ihrem Konto haben für diese Übung, aber wenn Sie eine mit der AWS CLI erstellen möchten, müssen Sie Sie können den folgenden Befehl verwenden:

aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird eine DynamoDB-Tabelle namens Person mit einer Primärschlüssel-ID erstellt.

Erstellen Sie die IAM-Ausführungsrolle

Alle Lambda-Funktionen erfordern eine IAM-Rolle, die die definiert die ihm erteilten Berechtigungen. Dies wird als Ausführungsrolle der Lambda-Funktion bezeichnet. Erstens: Wir werden den Prozess der Erstellung unserer IAM-Rolle für Lambda durchlaufen Funktion und Erstellen der Lambda-Funktion selbst. Wir werden AWS verwenden Verwaltungskonsole für diese Aufgabe:

  1. Navigieren Sie zu IAM.
  2. Navigieren Sie zu Richtlinien.
  3. Klicken Sie auf Richtlinie erstellen .
  4. Wählen Sie die Registerkarte „JSON“.
  5. Ersetzen Sie den Standardinhalt durch die folgende JSON-Anweisung:
{   "Version":"2012-10-17",   "Statement":[      {         "Effect":"Allow",         "Action":[            "logs:CreateLogGroup",            "logs:CreateLogStream",            "logs:PutLogEvents"         ],         "Resource":"arn:aws:logs:*:*:*"      },      {         "Action":[            "dynamodb:CreateBackup",            "dynamodb:DeleteBackup",            "dynamodb:ListBackups"         ],         "Effect":"Allow",         "Resource":"*"      }   ]}
Nach dem Login kopieren

Diese Anweisung gewährt zwei Sätze von Berechtigungen. Erstens gewährt es die Möglichkeit, sich bei CloudWatch Logs anzumelden. Mit dieser Berechtigung kann jeder Python print() Anweisungen werden in CloudWatch Logs angezeigt. Zweitens erteilen wir die Erlaubnis für die Lambda-Funktion zum Erstellen, Auflisten und Löschen von DynamoDB-Backups alle Tabellen.

  1. Klicken Sie auf Richtlinie überprüfen.
  2. Nennen Sie diese Richtlinie LambdaBackupDynamoDBPolicy.
  3. Klicken Sie auf Richtlinie erstellen.

Nachdem die Richtlinie erstellt wurde, müssen Sie eine Rolle erstellen, der diese Richtlinie zugeordnet ist.

  1. Navigieren Sie in IAM zu Rollen.
  2. Klicken Sie auf Rolle erstellen.
  3. Wählen Sie den Typ der vertrauenswürdigen Entität aus: AWS-Dienst.
  4. Auswählen der Dienst, der diese Rolle verwenden wird: Lambda.
  5. Klicken Sie auf Weiter: Berechtigungen.
  6. Suchen Sie im Suchfeld die im vorherigen Schritt erstellte LambdaBackupDynamoDBPolicy.
  7. Aktivieren Sie das Kontrollkästchen neben dem Richtliniennamen.
  8. Klicken Sie auf Weiter: Tags.
  9. Klicken Sie auf Weiter: Überprüfen.
  10. Rollenname: LambdaBackupDynamoDBRole.
  11. Klicken Sie auf Rolle erstellen.

Erstellen Sie die Lambda-Funktion

Lass uns unsere Lambda-Funktion erstellen!

  1. Navigieren Sie zu Lambda.
  2. Klicken Sie auf Funktion erstellen.
  3. Wählen Sie den Autor von Grund auf aus.
  4. Funktionsname: BackupDynamoDB.
  5. Laufzeit: Python 3.7.
  6. Wählen Sie unter „Berechtigungen“ die Option „Ausführungsrolle auswählen oder erstellen“ aus.
  7. Wählen Sie unter „Ausführungsrolle“ die Option „Vorhandene Rolle verwenden“ aus.
  8. Unter „Vorhanden“ Rolle, wählen Sie LambdaBackupDynamoDBRole aus, die im vorherigen Schritt erstellt wurde.
  9. Klicken Sie auf Funktion erstellen.

Fügen Sie den folgenden Quellcode in Lambda ein Code-Editor der Funktion: Klicken Sie oben rechts auf dem Bildschirm auf Speichern.

Erstellen Sie eine CloudWatch-Regel

Als nächstes erstellen wir eine CloudWatch-Regel, um den Lambda zu planen Funktion, die in regelmäßigen Abständen ausgeführt wird. Dadurch werden Sicherungen durchgeführt DynamoDB-Tabelle und entfernen Sie veraltete Backups.

  1. Navigieren Sie zu CloudWatch.
  2. Navigieren Sie zu Ereignisse > Regeln.
  3. Klicken Sie auf Regel erstellen.
  4. Planen Sie das Ereignis so, dass es im gewünschten Intervall ausgeführt wird (z. B. alle 1 Tag).
  5. Klicken Sie auf Ziel hinzufügen.
  6. Wählen Sie unter Lambda-Funktion „BackupDynamoDB“ aus.
  7. Wählen Sie unter Eingabe konfigurieren die Option Konstante (JSON-Text) aus.
  8. Legen Sie den Wert für die JSON-Anweisung fest:
    aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
    Nach dem Login kopieren
    Nach dem Login kopieren
  9. Klicken Sie auf Details konfigurieren.
  10. Name : BackupDynamoDBDaily (oder was auch immer Sie bevorzugen).
  11. Klicken Sie auf Regel erstellen.
  12. Warten Damit die CloudWatch-Regel den nächsten Sicherungsauftrag auslöst, den Sie haben geplant. Wenn Sie wie ich ungeduldig sind, können Sie den Zeitplan festlegen Stellen Sie das Intervall auf 1 Minute ein und Sie werden sehen, dass es früher ausgeführt wird.
  13. Überprüfen Sie, ob der geplante Sicherungsauftrag mithilfe von CloudWatch Logs ausgeführt wurde. Die Protokollgruppe wird /aws/lambda/BackupDynamoDB genannt, mit einem Stream für jeden Aufruf.
  14. Überprüfen Sie, ob die Sicherungsdatei in der Liste der DynamoDB-Sicherungen vorhanden ist.


Das obige ist der detaillierte Inhalt vonPlanen von Amazon DynamoDB-Backups mit Lambda, Python und Boto3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:pluralsight.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!