使用 Lambda、Python 和 Boto3 安排 Amazon DynamoDB 備份

Jennifer Aniston
發布: 2024-10-29 10:09:30
轉載
902 人瀏覽過

假設您想要備份其中一個 DynamoDB 表 每一天。我們也希望將備份保留指定的時間段 time. 實現此目的的簡單方法是使用 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
登入後複製
登入後複製

這將建立一個名為 Person 的 DynamoDB 表,並帶有主鍵 id。

建立IAM 執行角色

所有Lambda 函數都需要定義一個Lambda 函數來定義 授予它的權限。這稱為 Lambda 函數的執行角色。首先, 我們將逐步完成為 Lambda 編寫 IAM 角色的過程 函數並建立 Lambda 函數本身。我們將使用 AWS 此任務的管理控制台:

    導覽至 IAM。
  1. 導航到策略。
  2. 點選建立策略.
  3. 選擇 JSON 標籤。
  4. 將預設內容替換為以下 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":"*"      }   ]}
登入後複製
該語句授予兩組權限。首先,它授予 能夠記錄到 CloudWatch Logs。有了這個權限,任何Python print() 語句將顯示在CloudWatch Logs中。其次,我們授予權限 用於 Lambda 函數建立、列出和刪除 DynamoDB 備份 所有表。

    點選查看策略。
  1. 將此策略命名為 LambdaBackupDynamoDBPolicy。
  2. 點選建立策略。
現在已建立策略,您必須建立一個附加此策略的角色。

    在 IAM 中,導覽至角色。
  1. 點選建立角色。
  2. 選擇受信任實體的類型:AWS 服務。
  3. 選擇將使用此角色的服務:Lambda。
  4. 按一下「下一步:權限」。
  5. 在搜尋框中,找到在上一個步驟中建立的 LambdaBackupDynamoDBPolicy。
  6. 選取核取方塊
  7. 按下一步:標籤。
  8. 按下一步:審核。
  9. 角色名稱:LambdaBackupDynamoDBRole。
  10. 點選建立角色。
建立 Lambda 函數

讓我們建立我們的 Lambda>

讓我們建立我們的 Lambda 🎜>讓我們建立一個函數!
  1. 導航到 Lambda。
  2. 點選建立函數。
  3. 從頭開始選出作者。
  4. 函數名稱:BackupDynamoDB。
  5. 運行時:Python 3.7。
  6. 在「權限」下,選擇「選擇或建立執行角色」。
  7. 在「執行角色」下,選擇「使用現有角色」。
  8. 在「現有」下Role,選擇上一個步驟所建立的 LambdaBackupDynamoDBRole。
  9. 點選建立函數。

將以下原始程式碼貼到 Lambda 中函數的程式碼編輯器:點擊螢幕右上角的儲存。

建立CloudWatch 規則

接下來,我們將建立一個規則Lambda 函數定期運行。這將執行以下備份 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. 名稱:每日備份DynamoDB(或您喜歡的任何內容)。
  11. 點選建立規則。
  12. 等待 讓 CloudWatch 規則觸發您的下一個備份作業 已安排。如果你跟我一樣不耐煩的話,你可以設定時間表 將間隔設為 1 分鐘,您會看到它運行得更快。
  13. 使用 CloudWatch Logs 驗證計畫的備份作業執行。日誌組將命名為 /aws/lambda/BackupDynamoDB,每次呼叫都有一個流。
  14. 驗證 DynamoDB 備份清單中是否有備份檔案。


以上是使用 Lambda、Python 和 Boto3 安排 Amazon DynamoDB 備份的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:pluralsight.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!