Net::Amazon::DynamoDB::Table - Higher level interface to Net::Amazon::DyamoDB::Lite
use Net::Amazon::DynamoDB::Table; my $table = Net::Amazon::DynamoDB::Table->new( region => 'us-east-1', # required table => $table, # required hash_key => 'planet', # required range_key => 'species', # required if table has a range key access_key => ..., # default: $ENV{AWS_ACCESS_KEY}; secret_key => ..., # default: $ENV{AWS_SECRET_KEY}; ); # create or update an item $table->put(Item => { planet => 'Mars', ... }); # get the item with the specified primary key; returns a hashref my $item = $table->get(planet => 'Mars'); # delete the item with the specified primary key $table->delete(planet => 'Mars'); # scan the table for items; returns an arrayref of items my $items_arrayref = $table->scan(); # scan the table for items; returns items as a hash of key value pairs my $items_hashref = $table->scan_as_hashref();
A Net::Amazon::DynamoDB::Table object represents a single table in DynamoDB. This module provides a simple UI layer on top of Net::Amazon::DynamoDB::Lite.
There are two features which make this class "simpler" than Net::Amazon::DynamoDB::Lite.
The first is that you don't need to specify the TableName in every call.
The second is that you don't need to worry about types.
Returns a Net::Amazon::DynamoDB::Table object. Accepts the following attributes:
region => 'us-east-1', # required table => $table, # required hash_key => $hash_key, # required range_key => $range_key, # required if table has a range key access_key => ..., # default: $ENV{AWS_ACCESS_KEY}; secret_key => ..., # default: $ENV{AWS_SECRET_KEY};
Creates a new item, or replaces an old item with a new item. This method accepts the same parameters as those accepted by the AWS DynamoDB put_item api endpoint. Note however, that you don't need to specify any types. This module does that for you. For example:
$dynamodb->put(( Item => { a => 1, # a Number b => "boop", # a String c => [ "hi mom", 23.5 ], # a List composed of a String and Number d => { # a Map chipmunks => [qw/alvin theodore/], # a List of Strings backstreet_boys => [qw/Nick Kevin/], # a List of Strings thing => 23, # a Number }, }, );
Returns a hashref representing the item specified by the given primary key. You can specify the primary key using the HashKey and RangeKey parameters provided for convenience by this module:
my $item = $dynamodb->get( planet => 'Mars', species => 'green aliens', );
Or you can explicitly specify the primary key and types using the Key parameter like this:
my $item = $dynamodb->get( Key => [ { planet => { S => 'Mars' } }, { species => { N => 'green aliens' } }, ], );
This method also accepts the same parameters as those accepted by the AWS DynamoDB get_item api endpoint. For example:
my $item = $dynamodb->get( planet => 'Mars', species => 'green aliens', ConsistentRead => 1, );
Deletes a single item from a table using the given primary key. You can specify the primary key using the HashKey and RangeKey parameters provided for convenience by this module:
my $item = $dynamodb->delete( planet => 'Mars', species => 'green aliens', );
my $item = $dynamodb->get( planet => 'Mars', species => 'green aliens', ConditionExpression => "planet := :p", ExpressionAttributeValues => { ':p' => { S => 'Mars' } }, );
This method accepts the same parameters as those accepted by the AWS DynamoDB scan api endpoint. It returns an arrayref of item hashrefs.
This method accepts the same parameters as those accepted by the AWS DynamoDB scan api endpoint. It returns the results as a hashref that looks like this:
# { $hash_key_value1 => $item1, # $hash_key_value2 => $item2, # ..., # }
Thanks to DuckDuckGo for making this module possible.
Copyright (C) Eric Johnson.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Eric Johnson <eric.git@iijo.org>
To install Net::Amazon::DynamoDB::Table, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Amazon::DynamoDB::Table
CPAN shell
perl -MCPAN -e shell install Net::Amazon::DynamoDB::Table
For more information on module installation, please visit the detailed CPAN module installation guide.