AWS Kinesis Firehouseとは?
ストリームデータをS3やRedshiftに送るサービス
import boto3 import uuid import json accesskey = "*" secretkey = "*" region = "ap-northeast-1" client = boto3.client('firehose', aws_access_key_id=accesskey, aws_secret_access_key= secretkey, region_name=region) data = { "musicID": 'xxxxxxxxxx', "userId": 1, "artistId": 1 } response = client.put_record( DeliveryStreamName = "PUT-S3-UNJQf", Record = { 'Data': f'{json.dumps(data)}\n' } )
{ "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:ap-northeast-1:*:deliverystream/PUT-S3-UNJQf" ] }, {
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the PutRecord operation: User: arn:aws:iam::702423327513:user/kinesis is not authorized to perform: firehose:PutRecord on resource: arn:aws:firehose:ap-northeast-1:*:deliverystream/PUT-S3-UNJQf because no identity-based policy allows the firehose:PutRecord action
うむー なんかよくわからんが、どういうことができるかは何となく理解したかも