47
loading...
This website collects cookies to deliver better user experience
const bucket = new s3.Bucket(this, bucketName, {
bucketName,
});
const result = bucket.addToResourcePolicy(new iam.PolicyStatement({
actions: ['s3:GetObject'],
resources: [bucket.arnForObjects('file.txt')],
principals: [new iam.AccountRootPrincipal()],
}));
const s3Destination = new destinations.S3Bucket(bucket, {
dataOutputPrefix,
errorOutputPrefix,
bufferingInterval: Duration.minutes(bufferingInterval),
bufferingSize: Size.mebibytes(bufferingSize),
});
const stream = new firehose.DeliveryStream(this, 'Delivery Stream', {
deliveryStreamName: streamName,
destinations: [s3Destination],
});
bucketName: 'your-bucket-name',
streamName: 'your-stream-name',
dataOutputPrefix: 'myFirehose/DeliveredYear=!{timestamp:yyyy}/anyMonth/rand=!{firehose:random-string}',
errorOutputPrefix: 'myFirehoseFailures/!{firehose:error-output-type}/!{timestamp:yyyy}/anyMonth/!{timestamp:dd}',
bufferingInterval: 2,
bufferingSize: 8,
{
effect: iam.Effect.ALLOW,
actions: [
'firehose:PutRecord',
'firehose:PutRecordBatch'
],
resources: ['your-firehose-arn']
}
import { Analytics, AWSKinesisFirehoseProvider } from 'aws-amplify';
Amplify.configure(awsConfig);
Analytics.addPluggable(new AWSKinesisFirehoseProvider);
Analytics: {
AWSKinesisFirehose: {
region: REGION
}
}
const onClick = async () => {
const now = new Date;
const data = {
id: now.getTime(),
action: 'Add Button',
component: 'Button',
user: 'the username of user',
source: 'Web',
};
try {
await Analytics.record({
data: data,
streamName: FIREHOSE,
}, 'AWSKinesisFirehose');
} catch (error) {
console.log(error);
}
}
<button
onClick={onClick}
>Add Button</button>
{"id":1637695583710,"action":"Add Button","component":"Button","user":"the username of user","source":"Web"}