本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
下列程式碼範例示範如何使用 建立項目TTL。
- SDK 適用於 Java 2.x
-
package com.amazon.samplelib.ttl; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.DynamoDbException; import software.amazon.awssdk.services.dynamodb.model.PutItemRequest; import software.amazon.awssdk.services.dynamodb.model.PutItemResponse; import software.amazon.awssdk.services.dynamodb.model.ResourceNotFoundException; import software.amazon.awssdk.utils.ImmutableMap; import java.io.Serializable; import java.util.Map; import java.util.Optional; public class CreateTTL { public static void main(String[] args) { final String usage = """ Usage: <tableName> <primaryKey> <sortKey> <region> Where: tableName - The Amazon DynamoDB table being queried. primaryKey - The name of the primary key. Also known as the hash or partition key. sortKey - The name of the sort key. Also known as the range attribute. region (optional) - The AWS region that the Amazon DynamoDB table is located in. (Default: us-east-1) """; // Optional "region" parameter - if args list length is NOT 3 or 4, short-circuit exit. if (!(args.length == 3 || args.length == 4)) { System.out.println(usage); System.exit(1); } String tableName = args[0]; String primaryKey = args[1]; String sortKey = args[2]; Region region = Optional.ofNullable(args[3]).isEmpty() ? Region.US_EAST_1 : Region.of(args[3]); // Get current time in epoch second format final long createDate = System.currentTimeMillis() / 1000; // Calculate expiration time 90 days from now in epoch second format final long expireDate = createDate + (90 * 24 * 60 * 60); final ImmutableMap<String, ? extends Serializable> itemMap = ImmutableMap.of("primaryKey", primaryKey, "sortKey", sortKey, "creationDate", createDate, "expireAt", expireDate); final PutItemRequest request = PutItemRequest.builder() .tableName(tableName) .item((Map<String, AttributeValue>) itemMap) .build(); try (DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .build()) { final PutItemResponse response = ddb.putItem(request); System.out.println(tableName + " PutItem operation with TTL successful. Request id is " + response.responseMetadata().requestId()); } catch (ResourceNotFoundException e) { System.err.format("Error: The Amazon DynamoDB table \"%s\" can't be found.\n", tableName); System.exit(1); } catch (DynamoDbException e) { System.err.println(e.getMessage()); System.exit(1); } System.exit(0); } }
-
如需API詳細資訊,請參閱 AWS SDK for Java 2.x API 參考PutItem中的 。
-
如需開發人員指南和程式碼範例的完整清單 AWS SDK,請參閱 搭配 使用 DynamoDB AWS SDK。本主題也包含入門的相關資訊,以及先前SDK版本的詳細資訊。