

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

# 拡張クライアントと `DynamoDbTable` を作成する
<a name="ddb-en-client-getting-started-dynamodbTable"></a>

## 拡張クライアントを作成する
<a name="ddb-en-client-getting-started-dynamodbTable-eclient"></a>

[DDynamoDbEnhancedClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbEnhancedClient.html) クラスまたはその非同期クラスである [DynamoDBEnhancedAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbEnhancedAsyncClient.html) は、DynamoDB Enhanced Client API を操作するためのエントリポイントです。

拡張クライアントでは、作業を実行するための標準の `[DynamoDbClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/DynamoDbClient.html)` が必要です。API には、`DynamoDbEnhancedClient` インスタンスを作成する 2 つの方法があります。以下のスニペットに示す 1 つ目のオプションは、構成設定から選択したデフォルト設定を使用して標準の `DynamoDbClient` を作成します。

```
DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.create();
```

基礎となる標準クライアントを設定する場合は、次のスニペットに示すように、拡張クライアントのビルダーメソッドにそれを提供することができます。

```
// Configure an instance of the standard DynamoDbClient.
DynamoDbClient standardClient = DynamoDbClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(ProfileCredentialsProvider.create())
    .build();

// Use the configured standard client with the enhanced client.
DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.builder()
    .dynamoDbClient(standardClient)
    .build();
```

## `DynamoDbTable` インスタンスを作成する
<a name="ddb-en-client-getting-started-dynamodbTable-table"></a>

[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbTable.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbTable.html) は、`TableSchema` によって提供されるマッピング機能を使用する DynamoDB テーブルのクライアント側表現と考えます。`DynamoDbTable` クラスには、単一の DynamoDB テーブルを操作できる CRUD オペレーションのメソッドが用意されています。

`DynamoDbTable<T>` は、カスタムクラスでもドキュメントタイプのアイテムを操作するときの `EnhancedDocument` でも、単一の型引数を取る汎用クラスです。この引数タイプは、使用するクラスと単一の DynamoDB テーブルとの関係を確立します。

次のスニペットに示すように、`DynamoDbEnhancedClient` の `table()` ファクトリメソッドを使用して、`DynamoDbTable` インスタンスを作成します。

```
static final DynamoDbTable<Customer> customerTable = 
        enhancedClient.table("Customer", TableSchema.fromBean(Customer.class));
```

`DynamoDbTable` インスタンスは不変であり、アプリケーション全体で使用できるので、シングルトンの候補です。

これで、コードに `Customer` インスタンスを使用できる DynamoDB テーブルのインメモリ表現ができました。実際の DynamoDB テーブルは、存在する場合と存在しない場合があります。`Customer` という名前のテーブルがすでに存在する場合は、そのテーブルに対して CRUD オペレーションを実行し始めることができます。テーブルが見つからない場合、次のセクションで説明するように、`DynamoDbTable` インスタンスを使用してテーブルを作成します。