如何使用 Amazon API gateway 将 json 数据放入 Kinesis 流

2024-01-10

我使用 amazon api gateway 设置一个 API,并希望将数据放入 Kinesis 流中。 Amazon API gateway 对其有内置支持。但是当我尝试放入 JSON 数据时,它给出了“序列化异常”。

var data = {"ua_platform":"iPhone","ua_browsercodename":"Mozilla","ua_browserlanguage":"en-us","ua_header":"Mozilla\/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit\/601.1.46 (KHTML, like Gecko) Version\/9.0 Mobile\/13B143 Safari\/601.1","ua_browsername":"Netscape","key":"livestream_hindi",,"datetime_ut":"1458711871","datetime_dt":"2016-03-23","value":"15","source":"0","browser":"Mobile Safari-9.0.","os":"iOS-9.1.","device_detail":"iPhone Apple iPhone"};
var json = JSON.stringify(data);    
var params = {
  'ContentType': 'application/json',
  'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'
};
var body =  {
  "Data": json,
  "StreamName": "XXXXXX",
  "PartitionKey": "XXXX"
};

之后我提出一个 put 请求

apigClient.functionPut(params, body, additionalParams)
  .then(function(result) {
    // This is where you would put a success callback
    console.log("success");
  })
  .catch(function(result) {
    // This is where you would put an error callback
    console.log("catch");
  });

API 给出 ​​200 ok 以及序列化异常。在 put 请求中声明主体变量中的“Data”键仅接受“blob”类型。现在我也尝试将 JSON 数据转换为 BLOB,但没有成功。

我无法弄清楚我做错了什么。请帮忙。


AWS 官方文档中有关于如何在 Kinesis 前设置 API 网关的演练:http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-kinesis.html http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-kinesis.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Amazon API gateway 将 json 数据放入 Kinesis 流 的相关文章

随机推荐