5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/send_aws_kinesis_event.rb', line 5
def self.call(partition_key, data)
begin
kinesis = Aws::Kinesis::Client.new(
region: ENV['AWS_REGION'],
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
)
data_blob = MultiJson.dump(data)
record = kinesis.put_record(:stream_name => ENV['KINESIS_STREAM_NAME'],
:data => data_blob,
:partition_key => partition_key
)
rescue
if record
shard_id = record[:shard_id] if record
sequence_number = record[:sequence_number] if record
end
Rails.logger.info "Put Kinesis event record to partition key '#{partition_key}' shard '#{shard_id}' (#{sequence_number}): '#{data_blob}'"
end
end
|