Lambda、Python、Boto3 を使用した Amazon DynamoDB バックアップのスケジュール設定

Jennifer Aniston
リリース: 2024-10-29 10:09:30
転載
902 人が閲覧しました

DynamoDB テーブルの 1 つのバックアップを作成すると仮定します。 毎日。また、バックアップを指定した期間保持したいと考えています。 これを達成する簡単な方法は、Amazon CloudWatch Events を使用することです。 AWS Lambda 関数を毎日トリガーするルール。この実践的な AWS ラボでは、 Boto3 を使用して Python で Lambda 関数を作成します。 これを設定するには、IAM ロールを構成し、 CloudWatch ルールと Lambda 関数の作成。

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

DynamoDB テーブルの作成

アカウント内にある任意の DynamoDB テーブルを確実に使用できます この演習では必要ですが、AWS CLI を使用して作成する場合は、 次のコマンドを使用できます:

aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
ログイン後にコピー
ログイン後にコピー

これにより、主キー ID を持つ Person という DynamoDB テーブルが作成されます。

IAM 実行ロールを作成する

すべての Lambda 関数には、 それに付与された権限。これは Lambda 関数の実行ロールと呼ばれます。まず、 Lambda の IAM ロールを作成するプロセスを順を追って説明します。 関数を作成し、Lambda 関数自体を作成します。AWS を使用します。 このタスクの管理コンソール:

  1. IAM に移動します。
  2. ポリシーに移動します。
  3. 「ポリシーの作成」をクリックします.
  4. JSON タブを選択します。
  5. デフォルトのコンテンツを次の JSON ステートメントに置き換えます:
{   "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":"*"      }   ]}
ログイン後にコピー

このステートメントは 2 セットの権限を付与します。まず、次のことを許可します。 CloudWatch Logs にログを記録する機能。この権限があれば、あらゆる Python print() ステートメントは CloudWatch Logs に表示されます。次に、権限を付与します。 Lambda 関数が DynamoDB バックアップを作成、一覧表示、削除するための すべてのテーブル。

  1. [ポリシーの確認] をクリックします。
  2. このポリシーに LambdaBackupDynamoDBPolicy という名前を付けます。
  3. ポリシーの作成をクリックします。

ポリシーが作成されたので、このポリシーがアタッチされるロールを作成する必要があります。

  1. IAM 内で、[ロール] に移動します。
  2. [ロールの作成] をクリックします。
  3. 信頼できるエンティティのタイプを選択します: AWS サービス。
  4. 選択しますこのロールを使用するサービス: Lambda。
  5. 「次へ: 権限」をクリックします。
  6. 検索ボックスで、前の手順で作成した LambdaBackupDynamoDBPolicy を見つけます。
  7. チェックボックスをオンにしますポリシー名の横にあります。
  8. [次へ: タグ] をクリックします。
  9. [次へ: 確認] をクリックします。
  10. ロール名: LambdaBackupDynamoDBRole。
  11. [ロールの作成] をクリックします。

Lambda 関数を作成する

Lambda 関数を作成しましょう!

  1. Lambda に移動します。
  2. 関数の作成をクリックします。
  3. 作成者を最初から選択します。
  4. 関数名: BackupDynamoDB.
  5. ランタイム: Python 3.7.
  6. [権限] で、[実行ロールの選択または作成] を選択します。
  7. [実行ロール] で、[既存のロールを使用する] を選択します。
  8. [既存のロール] で、前の手順で作成した LambdaBackupDynamoDBRole を選択します。
  9. [関数の作成] をクリックします。

貼り付け次のソースコードを Lambda 関数のコードエディターに入力します。画面の右上にある [保存] をクリックします。

CloudWatch ルールを作成します

次に、Lambda をスケジュールする CloudWatch ルールを作成します。 一定の間隔で実行する関数。これにより、 DynamoDB テーブルを削除し、古いバックアップを削除します。

  1. CloudWatch に移動します。
  2. イベント > ルールに移動します。
  3. [ルールの作成] をクリックします。
  4. 希望の間隔 (例: 1 日ごと) でイベントを実行するようにスケジュールします。
  5. ターゲットの追加をクリックします。
  6. Lambda 関数で、BackupDynamoDB を選択します。
  7. [入力の構成] で [定数 (JSON テキスト)] を選択します。
  8. 値を JSON ステートメントに設定します。
    aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST
    ログイン後にコピー
    ログイン後にコピー
  9. [詳細の構成] をクリックします。
  10. 名前: BackupDynamoDBDaily (または任意のもの)。
  11. [ルールの作成] をクリックします。
  12. 待ちます CloudWatch ルールが次のバックアップ ジョブをトリガーするための 予定されています。私のようにせっかちなら、スケジュールを設定してください 間隔を 1 分にすると、より早く実行されることがわかります。
  13. CloudWatch Logs を使用して、スケジュールされたバックアップ ジョブが実行されたことを確認します。ログ グループには /aws/lambda/BackupDynamoDB という名前が付けられ、呼び出しごとにストリームが付けられます。
  14. DynamoDB バックアップのリストにバックアップ ファイルが存在することを確認します。


以上がLambda、Python、Boto3 を使用した Amazon DynamoDB バックアップのスケジュール設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:pluralsight.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!