Добавить объект JSON в Тело API-шлюза к прокси-серверу Kinesis?
Я настроил API-шлюз как прокси-сервер Kinesis, как описано в Учебник Amazons для размещения записи в потоке Kinesis.
HTTP-заголовки для запроса интеграции:
stream-name
отображается на method.request.header.stream-name
partition-key
отображается на method.request.header.partition-key
Content-Type
отображается на application/x-amz-json-1.1
Шаблон отображения тела для типа контента application/json
выглядит так:
{
"StreamName": "$input.params('stream-name')",
"PartitionKey": "$input.params('partition-key')",
"Data": "$util.base64Encode({"rows": "$input.json('$')", "uuid": "$input.params('uuid')"})"
}
Данные поступают как полезная информация JSON-запроса. Мы должны добавить параметр uuid
в качестве ключа JSON-объекта в полезную нагрузку данных для Kinesis, но закодированные данные, отправляемые в Kinesis, не являются объектами JSON.
Требуется добавить параметр uuid
в качестве ключа json-object в полезную нагрузку данных для кинези. Проблема, с которой я сталкиваюсь, заключается в том, что закодированные данные, отправленные в кинезис, не являются объектом JSON.
Данные, которые я ожидаю отправить в Kinesis, должны быть объектами JSON:
{
"rows": [{"id": 1, "name": "a"}, {"id": 2, "name": "b"}],
"uuid": "0001"
}
Но фактические данные, отправленные в Kinesis, выглядят следующим образом:
{
rows=[{"id": 1, "name": "a"}, {"id": 2, "name": "b"}],
uuid=0001
}
Как я могу отправить объект JSON из шлюза API в Kinesis? Я экспериментировал с $util.parseJson
, но не смог найти решение для этого сценария.
Вам нужно избежать двойных кавычек в шаблонах скорости
#set($event = "{
""rows"": ""$input.json('$')"",
""uuid"": ""$input.params('uuid')"",
}")
{
"StreamName": "$input.params('stream-name')",
"Data": "$util.base64Encode($event)",
"PartitionKey": "$input.params('partition-key')"
}
Вот аналогичный вопрос на форумах aws для отправки данных в кинезис через api gateway https://forums.aws.amazon.com/thread.jspa?threadID=233060
- Вопросы
- Aws-api-gateway
- Добавить объект JSON в Тело API-шлюза к прокси-серверу Kinesis?