NAME
Amazon::DynamoDB::20120810
VERSION
version 0.07
DESCRIPTION
new
Instantiates the API object.
Expects the following named parameters:
implementation - the object which provides a Future-returning
request
method, see Amazon::DynamoDB::NaHTTP for example.host - the host (IP or hostname) to communicate with
port - the port to use for HTTP(S) requests
ssl - true for HTTPS, false for HTTP
algorithm - which signing algorithm to use, default AWS4-HMAC-SHA256
scope - the scope for requests, typically
region/host/aws4_request
access_key - the access key for signing requests
secret_key - the secret key for signing requests
debug_failures - print errors if they occur
max_retries - maximum number of retries for a request
create_table
Creates a new table. It may take some time before the table is marked as active - use "wait_for_table_status" to poll until the status changes.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html
$ddb->create_table(
TableName => $table_name,
ReadCapacityUnits => 2,
WriteCapacityUnits => 2,
AttributeDefinitions => {
user_id => 'N',
date => 'N',
},
KeySchema => ['user_id', 'date'],
LocalSecondaryIndexes => [
{
IndexName => 'UserDateIndex',
KeySchema => ['user_id', 'date'],
Projection => {
ProjectionType => 'KEYS_ONLY',
},
ProvisionedThroughput => {
ReadCapacityUnits => 2,
WriteCapacityUnits => 2,
}
}
]
);
describe_table
Describes the given table.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html
$ddb->describe_table(TableName => $table_name);
delete_table
Delete a table.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html
$ddb->delete_table(TableName => $table_name)
wait_for_table_status
Waits for the given table to be marked as active.
TableName - the table name
WaitInterval - default wait interval in seconds.
DesiredStatus - status to expect before completing. Defaults to ACTIVE
$ddb->wait_for_table_status(TableName => $table_name);
each_table
Run code for all current tables.
Takes a coderef as the first parameter, will call this for each table found.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html
my @all_tables;
$ddb->each_table(
sub {
my $table_name =shift;
push @all_tables, $table_name;
});
put_item
Writes a single item to the table.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
$ddb->put_item(
TableName => $table_name,
Item => {
name => 'Test Name'
},
ReturnValues => 'ALL_OLD');
update_item
Updates a single item in the table.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html
$ddb->update_item(
TableName => $table_name,
Key => {
user_id => 2
},
AttributeUpdates => {
name => {
Action => 'PUT',
Value => "Rusty Conover-3",
},
favorite_color => {
Action => 'DELETE'
},
test_numbers => {
Action => 'DELETE',
Value => [500]
},
added_number => {
Action => 'ADD',
Value => 5,
},
subtracted_number => {
Action => 'ADD',
Value => -5,
},
});
delete_item
Deletes a single item from the table.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html
$ddb->delete_item(
TableName => $table_name,
Key => {
user_id => 5
});
get_item
Retrieve an items from one tables.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
my $found_item;
my $get = $ddb->get_item(
sub {
$found_item = shift;
},
TableName => $table_name,
Key => {
user_id => 6
});
batch_write_item
Put or delete a collection of items.
Has no restriction on the number of items able to be processed at one time.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
$ddb->batch_write_item(
RequestItems => {
books => [
{
DeleteRequest => {
book_id => 3000,
}
},
],
users => [
{
PutRequest => {
user_id => 3000,
name => "Test batch write",
}
},
{
PutRequest => {
user_id => 3001,
name => "Test batch write",
}
}
]
});
batch_get_item
Retrieve a batch of items from one or more tables.
Takes a coderef which will be called for each found item, followed by these named parameters:
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html
$ddb->batch_get_item(
sub {
my ($table, $item) = @_;
},
RequestItems => {
$table_name => {
ConsistentRead => 'true',
AttributesToGet => ['user_id', 'name'],
Keys => [
{
user_id => 1,
},
],
}
})
query
Query a table or an index.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
Additional parameters:
ResultLimit - maximum number of items to return
$ddb->query(
sub {
my $item = shift;
},
KeyConditions => {
user_id => {
ComparisonOperator => "EQ"
AttributeValueList => 1,
},
},
AttributesToGet => ["user_id"],
TableName => $table_name
);
scan
Scan a table for values with an optional filter expression.
Amazon Documentation:
http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
Additional parameters:
ResultLimit - maximum number of items to return
$ddb->scan(
sub {
my $item = shift;
push @found_items, $item;
},
TableName => $table_name,
ScanFilter => {
user_id => {
ComparisonOperator => 'NOT_NULL',
}
});
NAME
Amazon::DynamoDB::20120810 - interact with DynamoDB using API version 20120810
METHODS - Internal
The following methods are intended for internal use and are documented purely for completeness - for normal operations see "METHODS" instead.
make_request
Generates an HTTP::Request.
FUNCTIONS - Internal
_encode_type_and_value
Returns an appropriate type (N, S, SS etc.) and stringified/encoded value for the given value.
DynamoDB only uses strings even if there is a Numeric value specified, so while the type will be expressed as a Number the value will be stringified.
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html
AUTHOR
Rusty Conover <rusty@luckydinosaur.com>
Based on code by:
Tom Molesworth <cpan@entitymodel.com>
LICENSE
Copyright Tom Molesworth 2013. Licensed under the same terms as Perl itself. Copyright 2014 Rusty Conover, Lucky Dinosaur, LLC. Licensed under the same terms as Perl itself.
AUTHOR
Rusty Conover <rusty@luckydinosaur.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Rusty Conover.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 1060:
=back without =over