Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모
5030 단어 APIGateway람다PostmanDynamoDB
개요
Postman을 사용하여 JSON을 POST하고 JSON의 정보를 DynamoDB에 저장하기위한 환경을 구축했기 때문에 메모를 남깁니다.
1. DynamoDB 테이블 만들기
파티션 키와 정렬 키는 다음과 같이 설정했습니다. 오른쪽 하단의 파란색 만들기 버튼을 누르면 테이블이 만들어집니다.
2. Lambda 함수 만들기
JSON 정보를 DynamoDB에 저장하는 작업을 해주는 Lambda 함수를 만듭니다. 런타임은 Python 3.7을 사용했습니다.
IAM에서 Lambda가 DynamoDB에 쓸 수 있도록 역할을 만들고 적용합니다.
data-store.pyimport 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. 에서 만든 테이블에 항목이 추가됩니다.
이상입니다. 실수를 알면 지적을 부탁드립니다.
Reference
이 문제에 관하여(Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumach/items/377dcf7e51d54f101b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
파티션 키와 정렬 키는 다음과 같이 설정했습니다. 오른쪽 하단의 파란색 만들기 버튼을 누르면 테이블이 만들어집니다.
2. Lambda 함수 만들기
JSON 정보를 DynamoDB에 저장하는 작업을 해주는 Lambda 함수를 만듭니다. 런타임은 Python 3.7을 사용했습니다.
IAM에서 Lambda가 DynamoDB에 쓸 수 있도록 역할을 만들고 적용합니다.
data-store.pyimport 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. 에서 만든 테이블에 항목이 추가됩니다.
이상입니다. 실수를 알면 지적을 부탁드립니다.
Reference
이 문제에 관하여(Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumach/items/377dcf7e51d54f101b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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")
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. 에서 만든 테이블에 항목이 추가됩니다.
이상입니다. 실수를 알면 지적을 부탁드립니다.
Reference
이 문제에 관하여(Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kumach/items/377dcf7e51d54f101b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Postman에서 JSON을 POST하고 DynamoDB에 저장할 때의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumach/items/377dcf7e51d54f101b9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)