AWS Amplify Studio로 만든 DynamoDB에 API Gateway 에서 만든 REST API를 이용해서 데이터 넣기

http://susemi99.kr/7178/ 에서 만든 테이블에 REST API 를 이용해서 데이터를 넣을 수 있다.

IAM 에서 작업하기

  1. AWS IAM – 역할로 이동
  2. 새 역할 만들기 – 사용자 지정 신뢰 정책 선택 후 아래 json 추가. "Service": "apigateway.amazonaws.com" 부분 중요
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "apigateway.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
  1. 이름 지정, 검토 및 생성에서 이름 적으면 완료. PutSensorStatus 처럼 적당히 적으면 됨
  2. 생성한 역할에 들어가서 권한탭 – 권한 추가 – 인라인 정책 생성 클릭
  3. 정책 생성
    1. 서비스: DynamoDB
    2. 작업: 쓰기 – PutItem 선택
    3. 리소스: 특정 – ARN 추가 클릭
      1. Region: ap-northeast-2
      2. Table name: DynamoDB의 테이블 이름. SensorStatus-asd8uapd8f-staging 형태
  4. 정책 검토는 적당히 이름 넣고 정책 생성

API Gateway 에서 작업하기

  1. API Gateway에서 API 생성
  2. 생성한 api로 들어가서 리소스 생성. 여기서 만든 경로는 https://asdfaf.amazon.com/staging/여기 에 들어가게 됨
  3. 생성한 리소스를 선택하고 메소드 생성. GET, POST, PUT 같은 걸 선택하고 바로 옆의 v 를 눌러야 함
  4. 만들어진 메소드를 선택하고 AWS 서비스를 선택
    1. 리전: 사용할 리전을 선택
    2. 서비스: DynamoDB를 선택
    3. HTTP 메서드: 방금 전에 만든 거랑 같은 걸 선택
    4. 작업: PutItem
    5. 실행역할: IAM 에서 만든 역할의 ARN 붙여넣기. arn:aws:iam::1234567890:role/put-sensor-status 형식
  5. /sensor_status – POST로 이동함
  6. 메서드 요청
    1. API 키가 필요함: true. 변경 후 v를 눌어야 저장됨
  7. 통합요청 – 매핑 템플릿
    1. 정의된 템플릿이 없는 경우(권장) 선택
    2. 매핑 템플릿 추가 클릭
    3. application/json 입력 후 v를 누르면 하단에 템플릿을 만들 수 있는 화면이 표시됨. 이런 식으로 테이블 형식 넣기
{
  "TableName": "SensorStatus-asd8uapd8f-staging",
  "Item": {
    "id": {
      "S": "$context.requestId"
    },
    "name": {
      "S": "$input.path('$.name')"
    },
    "message": {
      "S": "$input.path('$.message')"
    },
    "timestamp": {
      "N": "$context.requestTimeEpoch"
    }
  }
}
  1. /sensor_status – POST – 테스트로 이동해서 요청 본문에 본문 json 파일 작성 후 테스트 버튼을 눌러서 테이블에 데이터가 잘 들어가는지 확인
  2. 만든 리소스를 선택하고 API 배포. paw나 post man같은 곳에서 테스트 하기위해 이 작업 필요
    1. 배포 스테이지: develop, staging, production 같은 이름 넣기
  3. https://8jdud7e8.execute-api.ap-northeast-2.amazonaws.com/staging 같은 url이 표시됨
  4. api key를 만들기 위해 사용량 계획 생성
    1. 이름: 적당히 넣기
    2. 나머지 정보도 적당히 넣기
  5. API 스테이즈 추가에는 아까 배포한 api와 스테이지 선택. v 눌러줘야 저장됨
  6. API 키 생성 후 사용량 계획에 추가에는 적당히 이름 넣기
  7. 왼쪽의 API 키 메뉴에서 위에서 만든 걸 선택하면 API 키 옆에 표시 를 클릭해서 API key 볼 수 있음
  8. 포스트맨에서 POST https://8jdud7e8.execute-api.ap-northeast-2.amazonaws.com/staging
    를 호출할 때 아래 정보를 넣고 정상동작하는지 확인
    1. header: x-api-key 에는 API 넣기
    2. body:
{
  "name": "센서이름",
  "message": "메시지"
}