NAME
WebService::Amazon::DynamoDB - support for the AWS DynamoDB API
VERSION
version 0.005
SYNOPSIS
# Using access key
my $ddb = WebService::Amazon::DynamoDB->new(
 version        => '20120810',
 access_key     => 'access_key',
 secret_key     => 'secret_key',
 uri            => 'http://localhost:8000',
);
$ddb->batch_get_item(
 sub {
  my $tbl = shift;
  my $data = shift;
  warn "Batch get: $tbl had " . join(',', %$data) . "\n";
 },
 items => {
  $table_name => {
   keys => [
    name => 'some test name here',
   ],
   fields => [qw(name age)],
  }
 },
)->get;
# Using the IAM role from the current EC2 instance
my $ddb = WebService::Amazon::DynamoDB->new(
 security       => 'iam',
);
# Using a specific IAM role
my $ddb = WebService::Amazon::DynamoDB->new(
 security       => 'iam',
 iam_role       => 'role_name',
);
BEFORE YOU START
NOTE: I'd recommend looking at the Amazon::DynamoDB module first. It is a fork of this one with better features, more comprehensive tests, and overall it's maintained much more actively.
DESCRIPTION
Provides a Future-based API for Amazon's DynamoDB REST API. See WebService::Amazon::DynamoDB::20120810 for available methods.
Current implementations for issuing the HTTP requests:
WebService::Async::UserAgent::NaHTTP - use Net::Async::HTTP for applications based on IO::Async (this gives nonblocking behaviour)
WebService::Async::UserAgent::LWP - use LWP::UserAgent (will block, timeouts are unlikely to work)
WebService::Async::UserAgent::MojoUA - use Mojo::UserAgent, should be suitable for integration into a Mojolicious application (could be adapted for nonblocking, although the current version does not do this).
Only the Net::Async::HTTP implementation has had any significant testing or use.
METHODS
make_request
Generates an HTTP::Request.
SEE ALSO
Net::Amazon::DynamoDB - supports the older (2011) API with v2 signing, so it doesn't work with DynamoDB Local.
AWS::CLIWrapper - alternative approach using wrappers around AWS commandline tools
AUTHOR
Tom Molesworth <cpan@perlsite.co.uk>
LICENSE
Copyright Tom Molesworth 2013-2015. Licensed under the same terms as Perl itself.