0
amazon apiゲートウェイを使用してAPIをセットアップし、キネシスストリームにデータを入れたい。 Amazonのapiゲートウェイには、それに対するサポートが組み込まれています。しかし、私はjsonのデータを入れようとすると "シリアライゼーションの例外"が出ます。KinesisストリームにAmazon APIゲートウェイを使用して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"
};
はこの後、私はAPIは直列化の例外と一緒に200 OKを与えるプット要求
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");
});
を作ります。 put要求では、body変数の "Data"キーは "blob"型のみを受け入れます。今私もJSONデータをBLOBに変換しようとしましたが、全く運がありません。
私は何が間違っているのか理解できません。助けてください。
おかげで公式のAWSドキュメントにキネシスの前にAPIゲートウェイを設定する方法のチュートリアルではあります。しかし、私は問題を修正しました。ストリング化されたデータをストリームにプッシュするために、base64エンコードされたデータに変換する必要があります。私はJAVASCRIPT:btoa()関数を使用し、期待どおりに動作します。 –