DynamoDB Local에서 python을 사용하여 번호 매기기 만들기 준비

6384 단어 DynamoDB

개요



python의 번호 매기기 처리를 만들 때 DynamoDB를 사용할 때 개발 중에 실제 DynamoDB를 사용하는 것은 ...라는 경우 DynamoDB Local을 사용하여 개발한다고 생각하기 때문에 그 방법을 정리해 나갑니다.
우선은 준비로서 docker의 컨테이너를 만들어 테이블의 작성까지 실시합니다.

사전 준비


  • docker를 먼저 도입합니다. windows Home의 경우 Docker Quickstart Terminal을 사용합니다.
  • aws cli도 설치합니다.
  • aws cli 설치 후 aws config에서 설정을 구성합니다. region, aws_access_key_id를 설정하십시오. 후속 처리에서 명령을 실행할 수 없기 때문입니다. 값은 적당하더라도 괜찮습니다.


  • 도커 파일 설정


  • 데이터를 영속화하기 위해 여기 을 참고로 docker-compose.yml,Dockerfile 를 작성합니다. 실제로 사용한 것은 다음과 같습니다.
  • docker-compose.yml
  • version: '3.7'
    
    services:
      dynamodb:
        build: ./dynamodb
        volumes:
          - dynamodb_data:/home/dynamodblocal/data
        ports:
          - 8000:8000
        command: -jar DynamoDBLocal.jar -dbPath ./data
    
    volumes:
      dynamodb_data:
    
    
  • Dockerfile
  • FROM amazon/dynamodb-local
    
    WORKDIR /home/dynamodblocal
    
    # UID=1000 → DynamoDB Local の実行ユーザ
    RUN mkdir data && chown -R 1000 data
    

  • docker-compose up 명령을 사용하면 컨테이너가 시작됩니다.


  • 테이블 만들기



  • 여기 를 참조로 먼저 스켈레톤 JSON을 작성합니다. 다음 명령을 실행합니다.
  • aws dynamodb create-table --generate-cli-skeleton > skel_dynamodb_create-table.json

  • json 파일에 테이블 정의를 작성합니다. 다음과 같이 작성했습니다.
  • {
        "AttributeDefinitions": [
            {
                "AttributeName": "sequence_key",
                "AttributeType": "S"
            }
        ],
        "TableName": "sequences",
        "KeySchema": [
            {
                "AttributeName": "sequence_key",
                "KeyType": "HASH"
            }
        ],
        "BillingMode": "PROVISIONED",
        "ProvisionedThroughput": {
            "ReadCapacityUnits": 1,
            "WriteCapacityUnits": 1
        }
    }
    

  • 다음 명령으로 테이블을 만듭니다.
  • aws dynamodb create-table --cli-input-json file://skel_dynamodb_create-table.json --endpoint-url http://localhost:8000

  • Docker Quickstart Terminal의 경우 localhost를 IP로 변경하십시오.



  • 컨테이너 쪽으로 액세스권이 없는 경우는 이하와 같은 에러 로그가 나오므로 주의
  • DynamoDB shell에서 테이블이 생성되었는지 확인할 수 있습니다.

  • http://localhost:8000/shell/에 액세스하여 브라우저에서 확인할 수 있습니다.

  • Docker Quickstart Terminal의 경우 localhost를 IP로 변경하십시오.
  • CTRL + 스페이스 키로 보완 할 수 있으므로 적당히 해 보면 좋을지도


  • 아래의 명령으로 작성된 테이블을 확인할 수 있습니다. 테이블을 생성할 때 리전과 AWS Access key를 일치시키지 않으면 볼 수 없으므로 설정을 잊지 마세요.
  • 리전을 ap-northeast-1로 설정하고 있습니다.
  • 오른쪽 상단의 기어 아이콘으로 aws_access_key_id를 설정하십시오.

  • dynamodb.config.update({
     region: "ap-northeast-1"
    })
    dynamodb.listTables().eachPage(function(err, data) {
        if (err) {
            ppJson(err); // an error occurred
        } else if (data) {
            ppJson(data);
        }
    });
    

    좋은 웹페이지 즐겨찾기