Table des matières
Créer la table DynamoDB
Créer le rôle d'exécution IAM
Maison développement back-end Tutoriel Python Planification des sauvegardes Amazon DynamoDB avec Lambda, Python et Boto3

Planification des sauvegardes Amazon DynamoDB avec Lambda, Python et Boto3

Oct 29, 2024 am 09:58 AM
python dynamodb

Supposons que vous souhaitiez faire une sauvegarde d'une de vos tables DynamoDB tous les jours. Nous souhaitons également conserver les sauvegardes pendant une période spécifiée de time.Un moyen simple d'y parvenir est d'utiliser un Amazon CloudWatch Events règle pour déclencher quotidiennement une fonction AWS Lambda. Dans cet atelier pratique AWS, vous écrirez une fonction Lambda en Python en utilisant Boto3 bibliothèque. Cette configuration nécessite la configuration d'un rôle IAM, la définition d'un Règle CloudWatch et création d'une fonction Lambda.

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

Créer la table DynamoDB

Vous pouvez certainement utiliser n'importe quelle table DynamoDB que vous avez dans votre compte pour cet exercice, mais si vous souhaitez en créer un à l'aide de l'AWS CLI, vous peut utiliser la commande suivante :

aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
Copier après la connexion
Copier après la connexion

Cela créera une table DynamoDB appelée Personne, avec un identifiant de clé primaire.

Créer le rôle d'exécution IAM

Toutes les fonctions Lambda nécessitent un rôle IAM qui définit le autorisations qui lui sont accordées. C'est ce qu'on appelle le rôle d'exécution de la fonction Lambda. Premièrement, nous allons parcourir le processus de création de notre rôle IAM pour Lambda fonction et créer la fonction Lambda elle-même. Nous utiliserons AWS Console de gestion pour cette tâche :

  1. Accédez à IAM.
  2. Accédez aux stratégies.
  3. Cliquez sur Créer une stratégie. .
  4. Sélectionnez l'onglet JSON.
  5. Remplacez le contenu par défaut par l'instruction JSON suivante :
{   "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":"*"      }   ]}
Copier après la connexion

Cette déclaration accorde deux ensembles d'autorisations. Premièrement, il accorde le possibilité de se connecter à CloudWatch Logs. Avec cette autorisation, tout Python print() les déclarations s'afficheront dans CloudWatch Logs. Deuxièmement, nous accordons l'autorisation pour que la fonction Lambda crée, répertorie et supprime les sauvegardes DynamoDB sur toutes les tables.

  1. Cliquez sur Réviser la stratégie.
  2. Nommez cette stratégie LambdaBackupDynamoDBPolicy.
  3. Cliquez sur Créer une stratégie.

Maintenant que la politique est créée, vous devez créer un rôle auquel cette politique est attachée.

  1. Dans IAM, accédez à Rôles.
  2. Cliquez sur Créer un rôle.
  3. Sélectionnez le type d'entité de confiance : service AWS.
  4. Choisissez le service qui utilisera ce rôle : Lambda.
  5. Cliquez sur Suivant : Autorisations.
  6. Dans la zone de recherche, recherchez la LambdaBackupDynamoDBPolicy créée à l'étape précédente.
  7. Cochez la case à côté du nom de la stratégie.
  8. Cliquez sur Suivant : Balises.
  9. Cliquez sur Suivant : Révision.
  10. Nom du rôle : LambdaBackupDynamoDBRole.
  11. Cliquez sur Créer un rôle.
Cliquez sur Créer un rôle.

🎜>

Créons la fonction Lambda


Créons notre fonction Lambda !



  1. Naviguez vers Lambda.

  2. Cliquez sur Créer une fonction.

  3. Sélectionnez l'auteur à partir de zéro.

  4. Nom de la fonction : BackupDynamoDB.

  5. Exécution : Python 3.7.

  6. Sous Autorisations, sélectionnez Choisir ou créer un rôle d'exécution.

  7. Sous Rôle d'exécution, sélectionnez Utiliser un rôle existant.

  8. Sous Rôle d'exécution, sélectionnez Utiliser un rôle existant.
Sous Rôle existant, sélectionnez LambdaBackupDynamoDBRole, créé à l'étape précédente.
Cliquez sur Créer une fonction.


Coller le code source suivant dans l'éditeur de code de la fonction Lambda : Cliquez sur Enregistrer en haut à droite de l'écran.

Créer une règle CloudWatch


Ensuite, nous allons créer une règle CloudWatch pour planifier le Lambda fonction à exécuter à intervalles réguliers. Cela effectuera des sauvegardes du Table DynamoDB et supprimez les sauvegardes obsolètes.



  1. Accédez à CloudWatch.

  2. Accédez à Événements > Règles.

  3. Cliquez sur Créer une règle.

  4. Planifiez l'exécution de l'événement à l'intervalle souhaité (par exemple, tous les 1 jour).

  5. Cliquez sur Ajouter une cible.
  6. aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
    Copier après la connexion
    Copier après la connexion
    Sous la fonction Lambda, sélectionnez BackupDynamoDB.
  7. Sous Configurer l'entrée, sélectionnez Constante (texte JSON).
  8. Définissez la valeur sur l'instruction JSON :

  9. Cliquez sur Configurer les détails.

  10. Nom : BackupDynamoDBDaily (ou ce que vous préférez).

  11. Cliquez sur Créer une règle.

  12. Attendez pour que la règle CloudWatch déclenche la prochaine tâche de sauvegarde que vous avez programmé. Si tu es impatient comme moi, tu peux fixer le planning intervalle à 1 minute, et vous le verrez s'exécuter plus tôt.
Vérifiez que la tâche de sauvegarde planifiée a été exécutée à l'aide de CloudWatch Logs. Le groupe de journaux sera nommé /aws/lambda/BackupDynamoDB, avec un flux pour chaque appel.

Vérifiez que le fichier de sauvegarde existe dans la liste des sauvegardes DynamoDB.

<🎜><🎜> <🎜><🎜><🎜>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1675
14
Tutoriel PHP
1278
29
Tutoriel C#
1257
24
PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Comment exécuter le code sublime python Comment exécuter le code sublime python Apr 16, 2025 am 08:48 AM

Pour exécuter le code Python dans le texte sublime, vous devez d'abord installer le plug-in Python, puis créer un fichier .py et écrire le code, et enfin appuyez sur Ctrl B pour exécuter le code, et la sortie sera affichée dans la console.

PHP et Python: une plongée profonde dans leur histoire PHP et Python: une plongée profonde dans leur histoire Apr 18, 2025 am 12:25 AM

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisation Apr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Golang vs Python: performance et évolutivité Golang vs Python: performance et évolutivité Apr 19, 2025 am 12:18 AM

Golang est meilleur que Python en termes de performances et d'évolutivité. 1) Les caractéristiques de type compilation de Golang et le modèle de concurrence efficace le font bien fonctionner dans des scénarios de concurrence élevés. 2) Python, en tant que langue interprétée, s'exécute lentement, mais peut optimiser les performances via des outils tels que Cython.

Où écrire du code dans vscode Où écrire du code dans vscode Apr 15, 2025 pm 09:54 PM

L'écriture de code dans Visual Studio Code (VSCODE) est simple et facile à utiliser. Installez simplement VScode, créez un projet, sélectionnez une langue, créez un fichier, écrivez du code, enregistrez-le et exécutez-le. Les avantages de VSCOD incluent la plate-forme multiplateuse, gratuite et open source, des fonctionnalités puissantes, des extensions riches et des poids légers et rapides.

Comment exécuter Python avec le bloc-notes Comment exécuter Python avec le bloc-notes Apr 16, 2025 pm 07:33 PM

L'exécution du code Python dans le bloc-notes nécessite l'installation du plug-in exécutable Python et du plug-in NPEXEC. Après avoir installé Python et ajouté un chemin à lui, configurez la commande "python" et le paramètre "{current_directory} {file_name}" dans le plug-in nppexec pour exécuter le code python via la touche de raccourci "F6" dans le bloc-notes.

See all articles