Kinesis 스트림에 기록을 넣기 위해 Amazon’s tutorial에 설명 된대로 Kinesis 프록시로 API 게이트웨이를 구성했습니다. 통합 요청에 대한API 게이트웨이의 본문에 JSON 객체를 Kinesis 프록시에 추가 하시겠습니까?
HTTP 헤더는 다음과 같습니다
stream-name
이application/x-amz-json-1.1
바디 매핑 템플릿에 매핑되는 method.request.header.partition-key
Content-Type
에 매핑되는 method.request.header.stream-name
partition-key
에 매핑 콘텐츠 유형 application/json
모양 : {
"StreamName": "$input.params('stream-name')",
"PartitionKey": "$input.params('partition-key')",
"Data": "$util.base64Encode({"rows": "$input.json('$')", "uuid": "$input.params('uuid')"})"
}
데이터는 JSON 요청 페이로드로 제공됩니다.매개 변수를 JSON 객체 키로 Kinesis의 데이터 페이로드에 추가해야하지만 Kinesis로 전송되는 인코딩 된 데이터는 JSON 객체가 아닙니다.
ksonis의 데이터 페이로드에 매개 변수 uuid
을 json 개체 키로 추가해야합니다. 내가 직면 한 문제는 kinesis로 전송 된 인코딩 된 데이터가 JSON 객체가 아니라는 것입니다.
{
rows=[{"id": 1, "name": "a"}, {"id": 2, "name": "b"}],
uuid=0001
}
가 어떻게 JSON 개체를 보낼 수 있습니다
내가 JSON 개체 수 있어야 운동성에 전송 될 것으로 예상 데이터 : 같은 운동성에 전송
{
"rows": [{"id": 1, "name": "a"}, {"id": 2, "name": "b"}],
"uuid": "0001"
}
그러나 실제 데이터 보인다 API 게이트웨이에서 Kinesis로? $util.parseJson
으로 실험했지만이 시나리오에 대한 해결책을 찾지 못했습니다.
감사 운동성 데이터를 전송하는 AWS 포럼에 비슷한 문제는 속도 템플릿
에 큰 따옴표를 이스케이프 할 필요가 나를 위해 문제를 해결했다. –