Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모

개요



Postman을 사용하여 JSON을 POST하고 JSON의 정보를 DynamoDB에 저장하기위한 환경을 구축했기 때문에 메모를 남깁니다.

1. DynamoDB 테이블 만들기



파티션 키와 정렬 키는 다음과 같이 설정했습니다. 오른쪽 하단의 파란색 만들기 버튼을 누르면 테이블이 만들어집니다.


2. Lambda 함수 만들기



JSON 정보를 DynamoDB에 저장하는 작업을 해주는 Lambda 함수를 만듭니다. 런타임은 Python 3.7을 사용했습니다.
IAM에서 Lambda가 DynamoDB에 쓸 수 있도록 역할을 만들고 적용합니다.

data-store.py
import boto3
from decimal import Decimal

dynamodb = boto3.resource('dynamodb')

def fill_empty_item(event):
    for key in event:
        if event[key] == "":
            event[key] = "(null)"
    return event

def put_item(event, table_name):
    table = dynamodb.Table(table_name)
    for key in event:
        if type(event[key]) is float:
            event[key] = Decimal(str(event[key]))
    table.put_item(
        Item = event
        )

def lambda_handler(event, context):
    fill_empty_item(event)
    put_item(event, "test-table")

3. API 만들기



API Gateway에서 API를 만듭니다. REST API 타일에 있는 빌드를 누릅니다.
액션에서 data-store-api 리소스를 만들고 POST 메조를 만들었습니다.


POST-SETUP의 Lambda 함수 항목에서 2. 에서 만든 Lambda 함수를 선택합니다.
그런 다음/data-store-api의 계층 구조를 선택하고 작업에서 CORS를 활성화하고 API를 배포합니다.
API 배포가 완료되면 URL 호출에 URL이 표시되지만 Postman에서 사용하는 URL은 아닙니다.
Postman에서 사용하는 URL은 스테이지에서 POST 메조를 선택했을 때 확인할 수 있습니다.

4. Postman에서 JSON을 POST



스테이지에서 확인할 수 있는 POST API의 URL을 Postman에 붙여넣습니다.
Body에 JSON 정보를 저장합니다. 이번에는 원시를 선택하고 다음 정보를 입력했습니다.
{
"DeviceId": "001",
"Timestamp": "2021-05-18",
"SensorData": 0.05,
"hoge":""
}

마지막으로 오른쪽의 파란색 버튼 "Send"를 누릅니다.


그러면 1. 에서 만든 테이블에 항목이 추가됩니다.


이상입니다. 실수를 알면 지적을 부탁드립니다.

좋은 웹페이지 즐겨찾기