Rumah >pembangunan bahagian belakang >Tutorial Python >Menjadualkan Sandaran Amazon DynamoDB dengan Lambda, Python dan Boto3

Menjadualkan Sandaran Amazon DynamoDB dengan Lambda, Python dan Boto3

Jennifer Aniston
Jennifer Anistonke hadapan
2024-10-29 09:58:041001semak imbas

Anggap anda ingin membuat sandaran salah satu jadual DynamoDB anda setiap hari. Kami juga ingin mengekalkan sandaran untuk tempoh tertentu masa.Cara mudah untuk mencapai matlamat ini ialah menggunakan Acara CloudWatch Amazon peraturan untuk mencetuskan fungsi AWS Lambda setiap hari. Dalam makmal AWS praktikal ini, anda akan menulis fungsi Lambda dalam Python menggunakan Boto3 perpustakaan. Menetapkan ini memerlukan konfigurasi peranan IAM, menetapkan a Peraturan CloudWatch dan mencipta fungsi Lambda.

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

Buat Jadual DynamoDB

Anda pasti boleh menggunakan mana-mana jadual DynamoDB yang anda ada dalam akaun anda untuk latihan ini, tetapi jika anda ingin menciptanya menggunakan AWS CLI, anda boleh menggunakan arahan berikut:

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

Ini akan mencipta jadual DynamoDB yang dipanggil Person, dengan id kunci utama.

Buat Peranan Pelaksanaan IAM

Semua fungsi Lambda memerlukan peranan IAM yang mentakrifkan kebenaran yang diberikan kepadanya. Ini dirujuk sebagai peranan pelaksanaan fungsi Lambda. Pertama, kami akan melalui proses mengarang peranan IAM kami untuk Lambda fungsi dan mencipta fungsi Lambda itu sendiri. Kami akan menggunakan AWS Konsol Pengurusan untuk tugas ini:

  1. Navigasi ke IAM.
  2. Navigasi ke Polisi.
  3. Klik Buat Dasar .
  4. Pilih tab JSON.
  5. Ganti kandungan lalai dengan pernyataan JSON berikut:
{   "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":"*"      }   ]}

Pernyataan ini memberikan dua set kebenaran. Pertama, ia memberikan keupayaan untuk log masuk ke Log CloudWatch. Dengan kebenaran ini, sebarang cetakan Python() penyata akan dipaparkan dalam CloudWatch Logs. Kedua, kami memberikan kebenaran untuk fungsi Lambda membuat, menyenaraikan dan memadamkan sandaran DynamoDB semua jadual.

  1. Klik Dasar Semakan.
  2. Namakan dasar ini LambdaBackupDynamoDBPolicy.
  3. Klik Buat Dasar.

Sekarang dasar itu dibuat, anda mesti mewujudkan peranan yang dilampirkan oleh dasar ini.

  1. Dalam IAM, navigasi ke Peranan.
  2. Klik Cipta Peranan.
  3. Pilih jenis entiti yang dipercayai: perkhidmatan AWS.
  4. Pilih perkhidmatan yang akan menggunakan peranan ini: Lambda.
  5. Klik Seterusnya: Kebenaran.
  6. Dalam kotak carian, cari LambdaBackupDynamoDBPolicy yang dibuat dalam langkah sebelumnya.
  7. Semak kotak pilihan bersebelahan dengan nama dasar.
  8. Klik Seterusnya: Teg.
  9. Klik Seterusnya: Semakan.
  10. Nama peranan: LambdaBackupDynamoDBRole.
  11. Klik Buat peranan.

Buat Fungsi Lambda

Jom cipta fungsi Lambda kami!

  1. Navigasi ke Lambda.
  2. Klik Fungsi Cipta.
  3. Pilih Pengarang dari awal.
  4. Nama fungsi: BackupDynamoDB.
  5. Waktu Jalan: Python 3.7.
  6. Di bawah Kebenaran, pilih Pilih atau cipta peranan pelaksanaan.
  7. Di bawah Peranan Pelaksanaan, pilih Gunakan peranan sedia ada.
  8. Di bawah Sedia Ada Peranan, pilih LambdaBackupDynamoDBRole, dibuat dalam langkah sebelumnya.
  9. Klik fungsi Cipta.

Tampal kod sumber berikut ke dalam Lambda editor kod fungsi:Klik Simpan di bahagian atas sebelah kanan skrin.

Buat Peraturan CloudWatch

Seterusnya, kami akan mencipta peraturan CloudWatch untuk menjadualkan Lambda berfungsi untuk berjalan secara berkala. Ini akan melakukan sandaran bagi Jadual DynamoDB dan alih keluar sandaran lapuk.

  1. Navigasi ke CloudWatch.
  2. Navigasi ke Acara > Peraturan.
  3. Klik Cipta peraturan.
  4. Jadualkan acara untuk dijalankan pada selang waktu yang dikehendaki (cth., setiap 1 hari).
  5. Klik Tambah sasaran.
  6. Di bawah fungsi Lambda, pilih  BackupDynamoDB.
  7. Di bawah input Konfigurasi, pilih Malar(teks JSON).
  8. Tetapkan nilai kepada pernyataan 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. Klik Konfigurasi butiran.
  10. Nama : BackupDynamoDBDaily (atau apa sahaja yang anda suka).
  11. Klik Cipta peraturan.
  12. Tunggu untuk peraturan CloudWatch untuk mencetuskan kerja sandaran seterusnya yang anda miliki dijadualkan. Jika anda tidak sabar seperti saya, anda boleh menetapkan jadual selang hingga 1 minit, dan anda akan melihatnya berjalan lebih awal.
  13. Sahkan kerja sandaran yang dijadualkan dijalankan menggunakan CloudWatch Logs. Kumpulan Log akan dinamakan /aws/lambda/BackupDynamoDB, dengan strim untuk setiap seruan.
  14. Sahkan fail sandaran wujud dalam senarai sandaran DynamoDB.


Atas ialah kandungan terperinci Menjadualkan Sandaran Amazon DynamoDB dengan Lambda, Python dan Boto3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:pluralsight.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam