55
66// snippet-start:[dynamodb.java2.create_table.main]
77// snippet-start:[dynamodb.java2.create_table.import]
8+
89import software .amazon .awssdk .core .waiters .WaiterResponse ;
910import software .amazon .awssdk .regions .Region ;
1011import software .amazon .awssdk .services .dynamodb .DynamoDbClient ;
1112import software .amazon .awssdk .services .dynamodb .model .AttributeDefinition ;
13+ import software .amazon .awssdk .services .dynamodb .model .BillingMode ;
1214import software .amazon .awssdk .services .dynamodb .model .CreateTableRequest ;
1315import software .amazon .awssdk .services .dynamodb .model .CreateTableResponse ;
1416import software .amazon .awssdk .services .dynamodb .model .DescribeTableRequest ;
1517import software .amazon .awssdk .services .dynamodb .model .DescribeTableResponse ;
1618import software .amazon .awssdk .services .dynamodb .model .DynamoDbException ;
1719import software .amazon .awssdk .services .dynamodb .model .KeySchemaElement ;
1820import software .amazon .awssdk .services .dynamodb .model .KeyType ;
21+ import software .amazon .awssdk .services .dynamodb .model .OnDemandThroughput ;
1922import software .amazon .awssdk .services .dynamodb .model .ProvisionedThroughput ;
2023import software .amazon .awssdk .services .dynamodb .model .ScalarAttributeType ;
2124import software .amazon .awssdk .services .dynamodb .waiters .DynamoDbWaiter ;
2427/**
2528 * Before running this Java V2 code example, set up your development
2629 * environment, including your credentials.
27- *
30+ * <p>
2831 * For more information, see the following documentation topic:
29- *
32+ * <p>
3033 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
3134 */
3235public class CreateTable {
3336 public static void main (String [] args ) {
3437 final String usage = """
3538
36- Usage:
37- <tableName> <key>
39+ Usage:
40+ <tableName> <key>
3841
39- Where:
40- tableName - The Amazon DynamoDB table to create (for example, Music3).
41- key - The key for the Amazon DynamoDB table (for example, Artist).
42- """ ;
42+ Where:
43+ tableName - The Amazon DynamoDB table to create (for example, Music3).
44+ key - The key for the Amazon DynamoDB table (for example, Artist).
45+ """ ;
4346
4447 if (args .length != 2 ) {
4548 System .out .println (usage );
@@ -51,8 +54,8 @@ public static void main(String[] args) {
5154 System .out .println ("Creating an Amazon DynamoDB table " + tableName + " with a simple primary key: " + key );
5255 Region region = Region .US_EAST_1 ;
5356 DynamoDbClient ddb = DynamoDbClient .builder ()
54- .region (region )
55- .build ();
57+ .region (region )
58+ .build ();
5659
5760 String result = createTable (ddb , tableName , key );
5861 System .out .println ("New table is " + result );
@@ -62,27 +65,24 @@ public static void main(String[] args) {
6265 public static String createTable (DynamoDbClient ddb , String tableName , String key ) {
6366 DynamoDbWaiter dbWaiter = ddb .waiter ();
6467 CreateTableRequest request = CreateTableRequest .builder ()
65- .attributeDefinitions (AttributeDefinition .builder ()
66- .attributeName (key )
67- .attributeType (ScalarAttributeType .S )
68- .build ())
69- .keySchema (KeySchemaElement .builder ()
70- .attributeName (key )
71- .keyType (KeyType .HASH )
72- .build ())
73- .provisionedThroughput (ProvisionedThroughput .builder ()
74- .readCapacityUnits (10L )
75- .writeCapacityUnits (10L )
76- .build ())
77- .tableName (tableName )
78- .build ();
68+ .attributeDefinitions (AttributeDefinition .builder ()
69+ .attributeName (key )
70+ .attributeType (ScalarAttributeType .S )
71+ .build ())
72+ .keySchema (KeySchemaElement .builder ()
73+ .attributeName (key )
74+ .keyType (KeyType .HASH )
75+ .build ())
76+ .billingMode (BillingMode .PAY_PER_REQUEST ) // DynamoDB automatically scales based on traffic.
77+ .tableName (tableName )
78+ .build ();
7979
8080 String newTable ;
8181 try {
8282 CreateTableResponse response = ddb .createTable (request );
8383 DescribeTableRequest tableRequest = DescribeTableRequest .builder ()
84- .tableName (tableName )
85- .build ();
84+ .tableName (tableName )
85+ .build ();
8686
8787 // Wait until the Amazon DynamoDB table is created.
8888 WaiterResponse <DescribeTableResponse > waiterResponse = dbWaiter .waitUntilTableExists (tableRequest );
0 commit comments