Skip to content

Instantly share code, notes, and snippets.

@alexdean
Created June 19, 2015 20:31
Show Gist options
  • Save alexdean/aeb04ef8384d571252b8 to your computer and use it in GitHub Desktop.
Save alexdean/aeb04ef8384d571252b8 to your computer and use it in GitHub Desktop.
require 'logger'
require 'aws-sdk'
log = Logger.new($stderr)
log.level = Logger::DEBUG
# fetch and print 1 record from the specified kinesis stream.
stream_name = ARGV[0]
starting_sequence_number = ARGV[1]
# http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-iam.html
AWS.config({
access_key_id: ENV['DEVELOPMENT_KINESIS_KEY_ID'],
secret_access_key: ENV['DEVELOPMENT_KINESIS_ACCESS_KEY']
})
stream = AWS::Kinesis::Client.new.describe_stream(
stream_name: stream_name
)
shard = stream.stream_description.shards.first
k = AWS::Kinesis::Client.new
# If a GetShardIterator request is made too often, you receive a
# ProvisionedThroughputExceededException . For more information about throughput
# limits, see GetRecords.
iterator = k.get_shard_iterator(
stream_name: stream_name,
shard_id: shard.shard_id,
shard_iterator_type: 'AT_SEQUENCE_NUMBER',
starting_sequence_number: starting_sequence_number
)
data = k.get_records(
shard_iterator: iterator.shard_iterator
)
if data.records.size > 0
log.info data.records.first.inspect
else
log.error "no record found. stream:'#{ENV[0]}' sequence_number:'#{ENV[1]}'"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment