【dynamodb】 로컬 환경의 데이터를 GUI로 확인할 때까지
개요
dynamodb를 로컬 환경에서 취급하고 있을 때 GUI에서 데이터 확인을 하고 싶었으므로, 조사해 보았더니 dynamodb-admin
라는 것이 있었다. 이번에는 dynamodb-admin
를 다룰 수 있는 instructure/dynamo-local-admin
라는 Docker 이미지가 있었기 때문에 이것을 이용한다.
여기서 사용하는 소스 코드는 GitHub 에 업하고 있으므로 자유롭게 부디.
주제
dynamo-local-admin 시작
docker-compose를 이용해 기동한다. yml 파일과 실행 명령은 다음과 같습니다.
docker-compose.ymlversion: "3"
services:
dynamo-admin:
image: instructure/dynamo-local-admin
ports:
- "8008:8000"
시작 명령docker-compose up -d --build
부팅 후 http://localhost:8008
에 액세스하면 즉시 사용할 수 있습니다.
테이블을 만들고 GUI로 확인
실제로 프로그램에서 테이블을 작성해 본다. 나는 프로그램으로부터 테이블 작성을 실시하는데 고생을 했으므로 이 부분은 마찬가지로 고생하고 있는 분에게의 메세지가 되면 기쁘다. 어디에 어려움을 겪었는지 boto3의 인스턴스를 만들 때 endpoint_url=http://localhost:8008
되어 있는지 확인 CLI에서 테이블 확인 코드도 아래에 게시). 조사해 보면 몇개의 기사로 인스턴스를 작성할 때 region_name
를 지정하고 있는 기사가 있었으므로 시험에 us-east-1
버렸다. 완전히 초기화되어 버렸다.
그러나 이것으로부터 동일한 endpoint_url=http://localhost:8008
테이블을 확인할 수 있는 것이 아닐까 생각했다.
다만, 어느 공간을 모르기 때문에 region_name
컨테이너에 들어가 보아 region_name
를 조사해 보았더니 instructure/dynamo-local-admin
가 설정되어 있었다. 그 때문에, 컨테이너를 조작하는 측에서는 region_name
(은)는 http://localhost:8000
(을)를 하고 있으면(자) 좋다고 생각했다(8008->8000에 포워딩 되고 있기 때문에 8008을 지정).
실제로 region_name
의 설정에서는 잘 가지 않고 http://localhost:8008
를 지정하면 GUI 로부터 확인을 할 수 있게 되었다.
이것으로부터, http://localhost:8008
의 지정은 주소라든지 포워딩 된다든가 그런 것은 아니고, 어떤 네임스페이스로 해 가는가 하는 이야기인 뿐이라, 알았다. 뭐 확실히 http://localhost:8000
를 지정하고 있는 시점에서 조작하고 싶은 컴퓨터를 지정하고 있는 것이므로, region_name
그럼 그 컴퓨터의 어느 공간을 이용할까라는 이야기가 되기 때문에 포워딩 되지 않는 것도 당연하다 라고 납득했다. 라는 것은, 어쩌면 endpoint_url
컨테이너측에서도 컨테이너를 조작하는 측에서도 region_name
같은 헨테코인 문자열을 instructure/dynamo-local-admin
에 넣어도 접속할 수 있을지도, 라고 시도하고 있지 않았지만 생각했다.
이하에 테이블을 작성하는 프로그램을 기재한다.
create_movies.pyimport boto3
client = boto3.client('dynamodb', endpoint_url='http://localhost:8008', region_name='localhost:8000')
table = client.create_table(
TableName='Movies',
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH' #Partition key
},
{
'AttributeName': 'title',
'KeyType': 'RANGE' #Sort key
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
},
{
'AttributeName': 'title',
'AttributeType': 'S'
},
],
ProvisionedThroughput={
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10
}
)
테이블 작성의 프로그램을 움직이면 다음과 같이 되어 테이블이 작성되고 있는 것을 확인할 수 있었다.
또한, 여기까지 오면 나머지는 간단하고, 데이터의 입력은 이하로 할 수 있다.
movies_put.pyimport boto3
dynamodb = boto3.resource('dynamodb', region_name='localhost:8000', endpoint_url="http://localhost:8008")
table = dynamodb.Table('Movies')
response = table.put_item(
Item={
'id': 1,
'title': "hello",
}
)
기타
테이블 일람은 이하에서 확인할 수 있다.
show_all.pyimport boto3
client = boto3.client('dynamodb', endpoint_url='http://localhost:8008', region_name='localhost:8000')
response = client.list_tables()
print(response)
참고
Reference
이 문제에 관하여(【dynamodb】 로컬 환경의 데이터를 GUI로 확인할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mk-tool/items/dd3f97611dd8b4723929
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
dynamo-local-admin 시작
docker-compose를 이용해 기동한다. yml 파일과 실행 명령은 다음과 같습니다.
docker-compose.yml
version: "3"
services:
dynamo-admin:
image: instructure/dynamo-local-admin
ports:
- "8008:8000"
시작 명령
docker-compose up -d --build
부팅 후
http://localhost:8008
에 액세스하면 즉시 사용할 수 있습니다.테이블을 만들고 GUI로 확인
실제로 프로그램에서 테이블을 작성해 본다. 나는 프로그램으로부터 테이블 작성을 실시하는데 고생을 했으므로 이 부분은 마찬가지로 고생하고 있는 분에게의 메세지가 되면 기쁘다. 어디에 어려움을 겪었는지 boto3의 인스턴스를 만들 때
endpoint_url=http://localhost:8008
되어 있는지 확인 CLI에서 테이블 확인 코드도 아래에 게시). 조사해 보면 몇개의 기사로 인스턴스를 작성할 때 region_name
를 지정하고 있는 기사가 있었으므로 시험에 us-east-1
버렸다. 완전히 초기화되어 버렸다.그러나 이것으로부터 동일한
endpoint_url=http://localhost:8008
테이블을 확인할 수 있는 것이 아닐까 생각했다.다만, 어느 공간을 모르기 때문에
region_name
컨테이너에 들어가 보아 region_name
를 조사해 보았더니 instructure/dynamo-local-admin
가 설정되어 있었다. 그 때문에, 컨테이너를 조작하는 측에서는 region_name
(은)는 http://localhost:8000
(을)를 하고 있으면(자) 좋다고 생각했다(8008->8000에 포워딩 되고 있기 때문에 8008을 지정).실제로
region_name
의 설정에서는 잘 가지 않고 http://localhost:8008
를 지정하면 GUI 로부터 확인을 할 수 있게 되었다.이것으로부터,
http://localhost:8008
의 지정은 주소라든지 포워딩 된다든가 그런 것은 아니고, 어떤 네임스페이스로 해 가는가 하는 이야기인 뿐이라, 알았다. 뭐 확실히 http://localhost:8000
를 지정하고 있는 시점에서 조작하고 싶은 컴퓨터를 지정하고 있는 것이므로, region_name
그럼 그 컴퓨터의 어느 공간을 이용할까라는 이야기가 되기 때문에 포워딩 되지 않는 것도 당연하다 라고 납득했다. 라는 것은, 어쩌면 endpoint_url
컨테이너측에서도 컨테이너를 조작하는 측에서도 region_name
같은 헨테코인 문자열을 instructure/dynamo-local-admin
에 넣어도 접속할 수 있을지도, 라고 시도하고 있지 않았지만 생각했다.이하에 테이블을 작성하는 프로그램을 기재한다.
create_movies.py
import boto3
client = boto3.client('dynamodb', endpoint_url='http://localhost:8008', region_name='localhost:8000')
table = client.create_table(
TableName='Movies',
KeySchema=[
{
'AttributeName': 'id',
'KeyType': 'HASH' #Partition key
},
{
'AttributeName': 'title',
'KeyType': 'RANGE' #Sort key
}
],
AttributeDefinitions=[
{
'AttributeName': 'id',
'AttributeType': 'N'
},
{
'AttributeName': 'title',
'AttributeType': 'S'
},
],
ProvisionedThroughput={
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10
}
)
테이블 작성의 프로그램을 움직이면 다음과 같이 되어 테이블이 작성되고 있는 것을 확인할 수 있었다.
또한, 여기까지 오면 나머지는 간단하고, 데이터의 입력은 이하로 할 수 있다.
movies_put.py
import boto3
dynamodb = boto3.resource('dynamodb', region_name='localhost:8000', endpoint_url="http://localhost:8008")
table = dynamodb.Table('Movies')
response = table.put_item(
Item={
'id': 1,
'title': "hello",
}
)
기타
테이블 일람은 이하에서 확인할 수 있다.
show_all.pyimport boto3
client = boto3.client('dynamodb', endpoint_url='http://localhost:8008', region_name='localhost:8000')
response = client.list_tables()
print(response)
참고
Reference
이 문제에 관하여(【dynamodb】 로컬 환경의 데이터를 GUI로 확인할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mk-tool/items/dd3f97611dd8b4723929
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import boto3
client = boto3.client('dynamodb', endpoint_url='http://localhost:8008', region_name='localhost:8000')
response = client.list_tables()
print(response)
Reference
이 문제에 관하여(【dynamodb】 로컬 환경의 데이터를 GUI로 확인할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mk-tool/items/dd3f97611dd8b4723929텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)