Amazon web services 用于Kinesis流的AWS API网关模板映射

Amazon web services 用于Kinesis流的AWS API网关模板映射,amazon-web-services,aws-api-gateway,amazon-kinesis,Amazon Web Services,Aws Api Gateway,Amazon Kinesis,根据aws教程,kinesis流PutRecord需要base64编码的JSON字符串作为数据。 在我的例子中,我需要在集成请求的模板映射中创建一个对象,然后再将其发送到kinesis流 API网关模板映射器中的代码示例: #set($inputRoot = $input.path('$')) #set($data = { "session": "$inputRoot.session", "customer": "$i

根据aws教程,kinesis流PutRecord需要base64编码的JSON字符串作为数据。 在我的例子中,我需要在集成请求的模板映射中创建一个对象,然后再将其发送到kinesis流

API网关模板映射器中的代码示例:

#set($inputRoot = $input.path('$'))
#set($data = {
  "session": "$inputRoot.session",
  "customer": "$inputRoot.customer",
  "ip": "$context.identity.sourceIp"
})
{
    "StreamName": "metrics-stream",
    "Data": "$util.base64Encode($data)",
    "PartitionKey": "$input.path('$.session')",
}
问题:上述代码不起作用,因为
$data
不是有效的JSON字符串。如何将
$data
转换为有效的JSON字符串?在模板映射器中找不到执行此操作的
$util

谢谢