要使用Amazon Kinesis Firehose将数据传输到Amazon S3,您需要完成以下步骤:
import boto3
firehose_client = boto3.client('firehose')
response = firehose_client.create_delivery_stream(
DeliveryStreamName='my-firehose-stream',
DeliveryStreamType='DirectPut',
ExtendedS3DestinationConfiguration={
'RoleARN': 'arn:aws:iam::123456789012:role/firehose_delivery_role',
'BucketARN': 'arn:aws:s3:::my-s3-bucket',
'Prefix': 'my-folder/',
'BufferingHints': {
'SizeInMBs': 128,
'IntervalInSeconds': 300
},
'CompressionFormat': 'UNCOMPRESSED',
'EncryptionConfiguration': {
'NoEncryptionConfig': 'NoEncryption'
}
}
)
response = firehose_client.put_record(
DeliveryStreamName='my-firehose-stream',
Record={
'Data': 'Hello, World!'
}
)
records = [
{'Data': 'Record 1'},
{'Data': 'Record 2'},
{'Data': 'Record 3'}
]
response = firehose_client.put_record_batch(
DeliveryStreamName='my-firehose-stream',
Records=records
)
请确保在上述代码中替换以下参数:
DeliveryStreamName:传输流的名称。RoleARN:具有适当权限的IAM角色的ARN。BucketARN:目标S3存储桶的ARN。Prefix:要将数据写入的S3桶中的文件夹前缀。BufferingHints.SizeInMBs:以MB为单位的缓冲区大小。BufferingHints.IntervalInSeconds:缓冲区刷新间隔,以秒为单位。CompressionFormat:数据在写入S3之前的压缩格式。EncryptionConfiguration:数据在写入S3之前的加密配置。这些示例代码可以帮助您开始使用Amazon Kinesis Firehose将数据传输到Amazon S3。根据您的需求和环境,您可能需要进一步自定义和配置。