[T/S] Project 3: Day 1

junnn0021·2023년 2월 17일
0

Project 3

목록 보기
2/5

문제 발생 1


문제 상황

curl -X POST https://s8bpez4yvb.execute-api.ap-northeast-2.amazonaws.com --header 'Content-type: application/json' --data-raw '{ "input": 1 }'

요청을 보냈을 때, Forbidden이 떴다.

에러 메시지

{"message":"Forbidden"}

나의 생각

일단 권한 문제이지 않을까 생각했다.

해결 과정

일단 curl 요청을 보내는 api 주소부터 바보같이 잘못 입력했었다.
그리고 코드 자체에 뭔가 문제가 단단히 있는 것 같다.
갑자기 콘솔 창 api 엔드포인트를 눌러도 되지가 않는다.

이 문제는 없애고 다시 처음부터 하기로 했다.

service: tutorial-step-1
frameworkVersion: '3'

provider:
  name: aws
  runtime: nodejs14.x
  region: ap-northeast-2


functions:
  function1:
    handler: handler.hello

index가 아닌 handler가 구동되도록 바꾸고 노드 버전도 14버전으로 낮췄다.
이러니 해결 됐다.

curl -X POST https://ppisorhjmk.execute-api.ap-northeast-2.amazonaws.com/default/tutorial-step-1-dev-function1 --header 'Content-type: application/json' --data-raw '{ "input": 1 }'
"message": "메시지를 받았습니다. 입력값: 1, 결과: 2"



문제 발생 2


문제 상황

API 트리거에서 POST만 가능하게 하니까 undefinded가 떴다.

에러 메시지

{"statusCode":200,"body":"{\n \"message\": \"메시지를 받았습니다. 입력값: undefined, 결과: undefined\"\n}"}

나의 생각

ANY로 받았을 땐, 값을 잘 주다가 왜 이러는지 모르겠다.
이건 시간을 너무 잡아 먹어서 다음에 알아보기로 했다.



문제 발생 3


문제 상황

SQS를 테스트하는데 module을 찾을 수 없다고 한다.

에러 메시지

"Error: Cannot find module '@aws-sdk/client-sqs'\nRequire stack ...

나의 생각

node_modules에 분명히 모듈이 있는데 왜 없다고 하는지 답답하다.
일단 모든 문제의 근본은 버전이기 때문에 버전 수정부터 했다.

해결 과정

역시나 버전 문제였다.
STEP 1에서 nodejs14버전을 써서 이번에도 그대로 썼는데 안됐었다.
팀원 중 1명은 16버전 나는 18버전으로 수정했다.
그러니 16버전의 팀원은 안되고 18버전은 됐다.



문제 발생 4


문제 상황

body 값에 1을 줬는데 consumer에서 NaN 값이 뜬다.

에러 메시지

e0fa0287-4a19-5466-9b13-5eefa70e0dcb	INFO	메시지를 받았습니다. 입력값: NaN, 결과: NaN

나의 생각

코드 상에서 body 값을 제대로 못 찾는 것 같다.

const consumer = async (event) => {
  for (const record of event.Records) {
    console.log("Message Body: ", record.body);

    let inputValue, outputValue
    
    // TODO: Step 1을 참고하여, +1 를 하는 코드를 넣으세요

    inputValue = parseInt(record.body)
    outputValue = inputValue + 1

    const message = `메시지를 받았습니다. 입력값: ${inputValue}, 결과: ${outputValue}`
    console.log(message)

  }
};



문제 발생 5


문제 상황

curl을 이용해서 반복문으로 요청을 보내니까 또 NaN이 떴다.

에러 메시지

a857fb86-32d4-5d95-97fb-a7eec1e7c7fb	INFO	메시지를 받았습니다. 입력값: NaN, 결과: NaN

나의 생각

로그를 보고 뜯어 고쳐야겠다고 생각했다.

해결 과정

test로는 되는데 curl이 안 되는 이유가 대체 뭔가 생각해봤다.

test가 성공했을 때, Message Body에 1이 찍히는데

curl 했을 때, Message Body에는 { "body": "1" }이 찍혀있었다.



curl -X POST https://e2ibhxu3kj.execute-api.ap-northeast-2.amazonaws.com/produce --header 'Content-type: application/json' --data-raw '{ "body":"1" }'

이게 원래 요청했던 curl 코드인데 제일 뒤에 --data-raw가 그대로 body로 받아들여지는 것 같아서

curl -X POST https://e2ibhxu3kj.execute-api.ap-northeast-2.amazonaws.com/produce --header 'Content-type: application/json' --data-raw '1'

그냥 1로 바꿔주니까 해결 됐다.

0개의 댓글