Amazon DynamoDB - Create table

Declaration

<AMAWSDYNAMODB ACTIVITY="create_table" 
ACCESSKEY="text" 
SECRETKEY="text (encrypted)" 
USERAGENT="text" 
MAXERRORRETRY="number" 
SERVICEURL="text" 
PROXYHOST="text" 
PROXYPORT="number" 
PROXYUSER="text" 
PROXYPWD="text (encrypted)" 
SIGNMETHOD="text" 
SIGNVERSION="text" NAME="text" 
HASH="text" 
HASHTYPE="text (options)" 
RANGE="text" 
RANGETYPE="text (options)" 
READ="number" 
WRITE="number" />

Description: Creates a new table and specifies the unique name, primary key and read/write requirements for the table.

IMPORTANT: All DynamoDB activities are performed using Amazon's DynamoDB engine, therefore, launching and managing DynamoDB requires a valid Access Key ID and Secret Access Key.

Practical Usage

Used to create a table. When you create a table, in addition to the table name, you must specify the primary key of the table. Amazon DynamoDB supports the following two types of primary keys:

  • Hash Type Primary Key - In this case the primary key is made of one attribute, a hash attribute. Amazon DynamoDB builds an unordered hash index on this primary key attribute.

  • Hash and Range Type Primary Key - In this case, the primary key is made of two attributes. The first attributes is the hash attribute and the second one is the range attribute. Amazon DynamoDB builds an unordered hash index on the hash primary key attribute and a sorted range index on the range primary key attribute.  

Connection Parameters

Property

Type

Required

Default

Markup

Description

Connection

 

 

 

 

Indicates where user credentials and preferences should originate from. This is a design mode parameter used only during task construction and configuration, thus, comprises no markup. The available options are:

  • Session - Specifies that user credentials and/or advanced preferences are obtained from a pre-configured session created in an earlier step with the use of the DynamoDB - Create session activity. Normally chosen if a combination of activities within the same action group are required. Linking several activities to a single session eliminates redundancy and improves efficiency. Several sessions can exist in a single task. Multiple sessions can run simultaneously without interference.

Session

Text

Yes if connection is session-based

DynamoDB

Session1

SESSION="myDynamoDBsession"

The name of an existing session to associate this activity with. The default value is DynamoDBSession1. This parameter is active only if the Connection parameter is set to Session.

Access key

Text

Yes if connection is host-based

(Empty)

ACCESSKEY="[accessKey]"

The ID that uniquely identifies the owner of the AWS service account (similar to a username). Together, the Access Key and Secret Access Key are the main credentials used to access and control basic AWS services through the API. This parameter is active only if the Connection parameter is set to Host.    

Secret access key

Text

Yes if connection is host-based

(Empty)

SECRETKEY="[SecretKey]"

The secret ID that corresponds with the Access Key (similar to a password). When a request is sent, AWS verifies that this key corresponds with the Access Key to authenticate the signature and confirm that the request sender is legitimate. This parameter is active only if the Connection parameter is set to Host.  

User agent

Text

No

AutoMate

USERAGENT="AutoMate"

The name of the client or application initiating requests to AWS. The default value is AutoMate. 

Maximum retries on error

Number

No

(Empty)

MAXERRORRETRY="7"

The amount of times this activity should retry sending the request to the sever before returning an error. Network components can generate errors anywhere in the life of a given request, therefore, implementing retries can increase reliability. 

Service URL

Text

No

(Empty)

SERVICEURL=

"https://sdb.eu-west-1.amazonaws.com"

The URL that provides the service region endpoint. To make the service call to a different region, simply specify the region-specific endpoint. For example, entering https://dynamodb.us-east-1.amazonaws.com would point to US East (Northern Virginia) region. A complete list of DynamoDB regions and their associated endpoints  can be found below under DynamoDB Regions and Endpoints.  

Proxy host

Text

No

(Empty)

PROXYHOST="proxy.host.com"

The host name (e.g., server.domain.com) or IP address (e.g., xxx.xxx.xxx.xxx) of the proxy server to use when connecting to AWS.  

Proxy port

Number

No

(Empty)

PROXYPORT="1028"

The port number to use to connect to the proxy server. 

Proxy username

Text

No

(Empty)

PROXYUSERNAME="Username"

The username to authenticate with the proxy server.

Proxy password

Text

No

(Empty)

PROXYPWD="encrypted"

The password to authenticate with the proxy server. 

Signature method

Text

No

(Empty)

SIGNMETHOD="HmacSHA256"

The signature method to use for signing the request. This provides a valid hashing algorithm for signature calculation. Valid AWS signature methods are HmacSHA1 and HmacSHA256.

Signature version

Number

No

(Empty)

SIGNVERSION="2"

The signature version for signing the request. Valid AWS signature versions are 2 and 4. The difference with version 4 is that it allows you to sign your message using a key that is derived from your secret access key rather than using the secret access key itself.

Table Parameters

Property

Type

Required

Default

Markup

Description

Name

Text

Yes

(Empty)

NAME="myTable"

The name of the table to create. Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long.

Hash key

Text

Yes

(Empty)

HASH="theHash"

The primary key (simple or composite) structure for the new table.

Hash type

Text (options)

No

String

  1. HASHTYPE="string"

  2. HASHTYPE="number"

The hash key type. The available options are:

  • String - The hash key is a string type.

  • Number - The hash key is a number type.

Range key (optional)

Text

No

(Empty)

RANGE="theRange"

The range key of the table to create.

Range type

Text (options)

No

String

  1. RANGETYPE="string"

  2. RANGETYPE="number"

The range key type. The available options are:

  • String - The range key is a string type.

  • Number - The range key is a number type.

Read capacity unit(s)

Number

No

5

READ="10"

Specifies the minimum number of consistent read capacity units consumed per second for the new table before Amazon DynamoDB balances the load with other operations. The default value is 5.

Write capacity unit(s)

Number

No

5

WRITE="12"

Specifies the minimum number of write capacity units consumed per second for the specified table before Amazon DynamoDB balances the load with other operations. The default value is 5.

Description tab - A custom description can be provided on the Description tab to convey additional information or share special notes about a task step.

Error Causes tab - Specify how this step should behave upon the occurrence of an error. (Refer to Task Builder > Error Causes Tab for details.)

On Error tab - Specify what AWE should do if this step encounters an error as defined on the Error Causes tab. (Refer to Task Builder > On Error Tab for details.)

DynamoDB Regions and Endpoints

This table contains a complete list of DynamoDB endpoints, associated regions and supported protocols.

Endpoint

Region

Protocol

elasticmapreduce.us-east-1.amazonaws.com

US East (Northern Virginia) Region

HTTP and HTTPS

elasticmapreduce.us-west-2.amazonaws.com

US West (Oregon) Region

HTTP and HTTPS

elasticmapreduce.us-west-1.amazonaws.com

US West (Northern California) Region

HTTP and HTTPS

elasticmapreduce.eu-west-1.amazonaws.com

EU (Ireland) Region

HTTP and HTTPS

elasticmapreduce.ap-southeast-1.amazonaws.com

Asia Pacific (Singapore) Region

HTTP and HTTPS

elasticmapreduce.ap-southeast-2.amazonaws.com

Asia Pacific (Sydney) Region

HTTP and HTTPS

elasticmapreduce.ap-northeast-1.amazonaws.com

Asia Pacific (Tokyo) Region

HTTP and HTTPS

elasticmapreduce.sa-east-1.amazonaws.com

South America (Sao Paulo) Region

HTTP and HTTPS

Example

The sample AML code below can be copied and pasted directly into the Steps panel of the Task Builder.

Description Simple DynamoDB task that creates a new table and new item in the table. Step by step description is embedded in the task.

<!-- Create session -->
<AMAWSDYNAMODB ACTIVITY="create_session" 
SESSION="DBSession1" ACCESSKEY="AKIAJ25JAKOPAC7123457" 
SECRETKEY="AM3i6P77pVEBOw=aME" />
<!-- Create table -->
<AMAWSDYNAMODB ACTIVITY="create_table" 
PROVIDER="session_based" 
SESSION="DBSession1" 
NAME="mytable" 
HASH="HashKeyName" />
<!-- Create item -->
<AMAWSDYNAMODB ACTIVITY="create_item" 
PROVIDER="session_based" 
SESSION="DBSession1" 	 
TABLE="mytable">
<ATTRIBUTE TYPE="String" 		 
NAME="gameName" 
VALUE="myGame" />
<ATTRIBUTE TYPE="Number" 
NAME="gameId" 
VALUE="41021234" />
<ATTRIBUTE TYPE="String" 
NAME="gameCost" 
VALUE="20" />
</AMAWSDYNAMODB>
<!-- End session -->
<AMAWSDYNAMODB ACTIVITY="end_session" 
SESSION="DBSession1" />