拡張ドキュメント API の使用を開始する - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

拡張ドキュメント API の使用を開始する

拡張ドキュメント API には、DynamoDB 拡張クライアント API に必要なものと同じ依存関係が必要です。また、このトピックの冒頭で示したように、DynamoDbEnhancedClient インスタンスも必要です。

拡張ドキュメント API は AWS SDK for Java 2.x のバージョン 2.20.3 でリリースされたため、そのバージョンかそれ以降が必要です。

DocumentTableSchema および DynamoDbTable を作成する

拡張ドキュメント API を使用して DynamoDB テーブルに対してコマンドを呼び出すには、テーブルをクライアント側の DynamoDbTable<EnhancedDocument> リソースオブジェクトに関連付けます。

拡張クライアントの table() メソッドは DynamoDbTable<EnhancedDocument> インスタンスを作成し、DynamoDB テーブル名と DocumentTableSchema のパラメータを必要とします。

DocumentTableSchema のビルダーには、プライマリインデックスキーと 1 つ以上の属性コンバータープロバイダーが必要です。この AttributeConverterProvider.defaultProvider() メソッドはデフォルトタイプのコンバーターを提供します。カスタム属性コンバータープロバイダーを提供する場合でも、指定する必要があります。オプションのセカンダリインデックスキーをビルダーに追加できます。

次のコードスニペットは、スキーマレス person オブジェクトを格納する DynamoDB EnhancedDocument テーブルのクライアント側表現を生成するコードを示しています。

DynamoDbTable<EnhancedDocument> documentDynamoDbTable = enhancedClient.table("person", TableSchema.documentSchemaBuilder() // Specify the primary key attributes. .addIndexPartitionKey(TableMetadata.primaryIndexName(),"id", AttributeValueType.S) .addIndexSortKey(TableMetadata.primaryIndexName(), "lastName", AttributeValueType.S) // Specify attribute converter providers. Minimally add the default one. .attributeConverterProviders(AttributeConverterProvider.defaultProvider()) .build()); // Call documentTable.createTable() if "person" does not exist in DynamoDB. // createTable() should be called only one time.

このセクション全体で使用される person オブジェクトの JSON 表現を以下に示します。

{ "id": 1, "firstName": "Richard", "lastName": "Roe", "age": 25, "addresses": { "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" }, "work": { "zipCode": "00001", "city": "Anywhere", "state": "FL", "street": "100 Main Street" } }, "hobbies": [ "Hobby 1", "Hobby 2" ], "phoneNumbers": [ { "type": "Home", "number": "555-0100" }, { "type": "Work", "number": "555-0119" } ] }