>백엔드 개발 >파이썬 튜토리얼 >Lambda, Python 및 Boto3를 사용하여 Amazon DynamoDB 백업 예약

Lambda, Python 및 Boto3를 사용하여 Amazon DynamoDB 백업 예약

Jennifer Aniston
Jennifer Aniston앞으로
2024-10-29 09:58:041000검색

DynamoDB 테이블 중 하나를 백업한다고 가정해 보겠습니다. 매일. 또한 지정된 기간 동안 백업을 보관하려고 합니다. 시간. 이를 달성하는 간단한 방법은 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 함수에는 다음을 정의하는 IAM 역할이 필요합니다. 부여된 권한입니다. 이를 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":"*"      }   ]}

이 문은 두 가지 권한 집합을 부여합니다. 첫째, 다음을 부여합니다. CloudWatch Logs에 로깅하는 기능. 이 권한이 있으면 모든 Python print() 문이 CloudWatch Logs에 표시됩니다.둘째, 권한을 부여합니다. Lambda 함수가 DynamoDB 백업을 생성, 나열 및 삭제하려면 모든 테이블.

  1. 정책 검토를 클릭합니다.
  2. 이 정책의 이름을 LambdaBackupDynamoDBPolicy로 지정합니다.
  3. 정책 생성을 클릭합니다.

이제 정책이 생성되었으므로 이 정책이 연결된 역할을 생성해야 합니다.

  1. IAM 내에서 역할로 이동합니다.
  2. Create Role을 클릭합니다.
  3. 신뢰할 수 있는 엔터티 유형을 선택합니다: AWS 서비스.
  4. 선택 이 역할을 사용할 서비스: Lambda.
  5. 다음: 권한을 클릭합니다.
  6. 검색 상자에서 이전 단계에서 생성된 LambdaBackupDynamoDBPolicy를 찾습니다.
  7. 확인란을 선택합니다. 정책 이름 옆에 있습니다.
  8. 다음: 태그를 클릭합니다.
  9. 다음: 검토를 클릭합니다.
  10. 역할 이름: LambdaBackupDynamoDBRole.
  11. 역할 생성을 클릭합니다.

람다 함수 만들기

람다 함수를 만들어 봅시다!

  1. Lambda로 이동합니다.
  2. Create function을 클릭합니다.
  3. 처음부터 작성자를 선택합니다.
  4. 함수 이름: BackupDynamoDB.
  5. 런타임: Python 3.7.
  6. 권한에서 실행 역할 선택 또는 생성을 선택합니다.
  7. 실행 역할에서 기존 역할 사용을 선택합니다.
  8. 기존에서 역할에서 이전 단계에서 생성한 LambdaBackupDynamoDBRole을 선택합니다.
  9. Create function을 클릭합니다.

다음 소스 코드를 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 pluralsight.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제