I was trying to send data using the following code it is not sending the data in correct format. It is storing some gibberish in S3.
import { KinesisClient, PutRecordCommand } from "@aws-sdk/client-kinesis";
import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";
import { Component } from '@angular/core';
import {
fromCognitoIdentityPool,
} from "@aws-sdk/credential-provider-cognito-identity";
client = new KinesisClient({
region: REGION,
credentials: fromCognitoIdentityPool({
client: new CognitoIdentityClient({ region: REGION }),
identityPoolId: "" // IDENTITY_POOL_ID
})
});
var recordData= JSON.stringify({
blog: window.location.href,
Sample: 'Srini',
time: new Date()
});
const data = await this.client.send(new PutRecordCommand({
Data: recordData,
PartitionKey: '1',
StreamName: 'my-stream-kinesis'
}));
const data1 = await this.client.send(new PutRecordCommand({
Data: Uint8Array.from(recordData),
PartitionKey: '1',
StreamName: 'my-stream-kinesis'
}));
The following command is actually sending correct data.
aws kinesis put-record --stream-name my-stream-kinesis --partition-key 123 --data eyJhYmNkIjoiU0FNUExFIn0=
What is wrong in the code?