오늘의 꿀팁
눈을 크게 뜨자
cli 환경에서 인라인으로 작성된 데이터를 결국 json 형태로 변환해야 dynamodb에 넣을 수 있다.
다음은 그것을 위한 옵션이 붙은 invoke 명령어
aws lambda invoke를 호출해라
--payload : 뒤에 json으로 변형할 수 있는 포맷으로 string을 넣거나, true, false 형태의 데이터를 넣을 수 있다.
--cli-binary-format raw-in-base64-out : 이진값으로 입력되는 매개변수 값을 해석할 수 있는 플래그 64 기반의 규칙을 명명한다.
aws lambda invoke --function-name {Lambda함수의Arn를입력} --invocation-type Event \
--payload '{ "Metadata": "Hello" }' \ response.json --cli-binary-format raw-in-base64-out
문제는 이걸 공식문서 그대로 들고와서 쳤지만 되지않았다.
에러를 살펴보면
An error occurred when calling the Invoke operation: Could not parse request body into json: Could not parse payload into json: Unrecognized token 'hello':
해석하면 payload 뒤의 넣을 데이터가 json으로 호환되지 않는형식이라는 뜻이다.
더 다양한 에러가 났었는데,
'{ "key" : "value" }'
"{ "key" : "value" }"
'{ key : value }'
등등 다양한 방식으로 시도했지만 결국 못넣었다.
이유는 내가 powershell을 기반으로 aws cli를 실행했기 때문이었다.
터미널별로 json 스트링을 처리하는 기준이 조금 다른데, 이때 `` 이라던가 '' 의 차이라던가 이런걸 조심해야한다.
powershell의 경우 json을 위해서 double quote 안에 escape 문자인 백슬래쉬(\)를 붙여줘야한다.
'{\"Metadata\": \"Hello\" }'
이 백슬래쉬를 제대로 지키지 못해서....세시간쯤 삽질했다....
덕분에 invoke 의 여러 옵션도 알게되고..으응...
좋았을꺼다...
'그 외 메모' 카테고리의 다른 글
[vscode]EC2 연결 (0) | 2022.08.26 |
---|---|
[vscode]ec2 인스턴스 내부 vscode로 컨트롤하기 (0) | 2022.05.15 |
[Ubuntu]Node.js 설치 (0) | 2022.03.17 |
[VScode]vscode 설치 ~ 환경변수 설정 (0) | 2022.02.28 |
[virtual machine]VMWARE 설치 & 우분투 (0) | 2022.02.09 |