

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

# ステップバイステップの移行手順
<a name="migration-steps"></a>

このセクションでは、現在 SDK for Java v1.x を使用しているアプリケーションを SDK for Java 2.x に移行するためのステップバイステップガイドを提供します。最初のパートでは、手順の概要と移行の詳細な例を示します。

ここで説明するステップでは、アプリケーションがモデル駆動型サービスクライアント AWS のサービス を使用して を呼び出す通常のユースケースの移行について説明します。[S3 Transfer Manager](migration-s3-transfer-manager.md) や [CloudFront 事前署名](migration-cloudfront-presigning.md)などの上位レベルの API を使用するコードを移行する必要がある場合は、[AWS SDK for Java 1.x と 2.x の違い](migration-whats-different.md) の目次内のセクションを参照してください。



ここで説明するアプローチは提案です。他の手法を使用し、IDE のコード編集機能を活用して同じ結果を得ることができます。

## 手順の概要
<a name="migration-steps-overview"></a>

### 1. SDK for Java 2.x BOM の追加から始める
<a name="migration-steps-overview-step1"></a>

SDK for Java 2.x の Maven BOM (部品表) 要素を POM ファイルに追加することで、必要なすべての v2 依存関係が同一バージョンになります。POM には、v1 と v2 の両方の依存関係を含めることができます。これにより、コードを一度にすべて変更するのではなく、段階的に移行できます。

#### SDK for Java 2.x BOM
<a name="drt_b5n_q1c"></a>

```
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>bom</artifactId>
      <version>2.27.21</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
```

Maven Central リポジトリで[最新バージョン](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)を検索してください。

### 2. v1 クラスインポートステートメントのファイルを検索する
<a name="migration-steps-overview-step2"></a>

アプリケーションのファイルをスキャンして v1 インポートで使用される SERVICE\$1ID を調べると、使用される一意の SERVICE\$1ID が見つかります。SERVICE\$1ID は、 の短い一意の名前です AWS のサービス。例えば、`cognitoidentity` はAmazon Cognito ID の SERVICE\$1ID です。

### 3. v1 インポートステートメントから v2 Maven の依存関係を特定する
<a name="migration-steps-overview-step3"></a>

一意の v1 SERVICE\$1ID がすべて見つかったら、[パッケージ名から Maven artifactId へのマッピング](#migration-serviceid-artifactid-mapping) を参照して、v2 の依存関係に対応する Maven アーティファクトを特定できます。

### 4. POM ファイルに v2 依存関係要素を追加する
<a name="migration-steps-overview-step4"></a>

ステップ 3 で特定した依存関係要素で Maven POM ファイルを更新します。

### 5. Java ファイルで、v1 クラスを v2 クラスに段階的に変更する
<a name="migration-steps-overview-step5"></a>

v1 クラスを v2 クラスに置き換えるときは、コンストラクタの代わりにビルダーを使用する、Fluent ゲッターやセッターを使用するなど、v2 API をサポートするために必要な変更を加えます。

### 6. POM から v1 Maven の依存関係を削除し、ファイルから v1 インポートを削除する
<a name="migration-steps-overview-step6"></a>

v2 クラスを使用するようにコードを移行したら、ファイルからの v1 の残りのインポートと、ビルドファイルからのすべての依存関係を削除します。

### 7. v2 API の拡張機能を使用するようにコードをリファクタリングする
<a name="migration-steps-overview-step7"></a>

コードが正常にコンパイルされてテストに合格したら、別の HTTP クライアントやページネーターを使用してコードを簡素化するなど、v2 の拡張機能を活用できます。これは任意の手順です。

## 移行の例
<a name="migration-steps-example"></a>

この例では、SDK for Java v1 を使用し、複数の AWS のサービスにアクセスするアプリケーションを移行します。ステップ 5 では、次の v1 メソッドについて詳しく説明します。これは、8 つのメソッドを含むクラスの 1 つのメソッドであり、アプリケーションには 32 のクラスがあります。

### 移行する v1 メソッド
<a name="v1-snippet-collapsed"></a>

Java ファイルから v1 SDK インポートのみを以下に列挙します。

```
import com.amazonaws.ClientConfiguration;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.RegionUtils;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.AmazonEC2Exception;
import com.amazonaws.services.ec2.model.CreateTagsRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesResult;
import com.amazonaws.services.ec2.model.Instance;
import com.amazonaws.services.ec2.model.InstanceStateName;
import com.amazonaws.services.ec2.model.Reservation;
import com.amazonaws.services.ec2.model.Tag;
import com.amazonaws.services.ec2.model.TerminateInstancesRequest;
...
private static List<Instance> getRunningInstances(AmazonEC2Client ec2, List<String> instanceIds) {
    List<Instance> runningInstances = new ArrayList<>();
    try {
        DescribeInstancesRequest request = new DescribeInstancesRequest()
                .withInstanceIds(instanceIds);
        DescribeInstancesResult result;
        do {
            // DescribeInstancesResponse is a paginated response, so use tokens with multiple requests.
            result = ec2.describeInstances(request);
            request.setNextToken(result.getNextToken());   // Prepare request for next page.
            for (final Reservation r : result.getReservations()) {
                for (final Instance instance : r.getInstances()) {
                    LOGGER.info("Examining instanceId: "+ instance.getInstanceId());
                    // if instance is in a running state, add it to runningInstances list.
                    if (RUNNING_STATES.contains(instance.getState().getName())) {
                        runningInstances.add(instance);
                    }
                }
            }
        } while (result.getNextToken() != null);
    } catch (final AmazonEC2Exception exception) {
        // if instance isn't found, assume its terminated and continue.
        if (exception.getErrorCode().equals(NOT_FOUND_ERROR_CODE)) {
            LOGGER.info("Instance probably terminated; moving on.");
        } else {
            throw exception;
        }
    }
    return runningInstances;
}
```

### 1. v2 Maven BOM を追加する
<a name="migration-steps-example-step1"></a>

`dependencyManagement` セクションの他の依存関係とともに、SDK for Java 2.x の Maven BOM を POM に追加します。POM ファイルに SDK の v1 用の BOM がある場合、この時点ではそのままにします。これは、後のステップで削除します。

#### 初期段階の POM 依存関係管理
<a name="migration-example-boms"></a>

```
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.example</groupId>             <!--Existing dependency in POM. -->
      <artifactId>bom</artifactId>
      <version>1.3.4</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-bom</artifactId>  <!--Existing v1 BOM dependency. -->
      <version>1.11.1000</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
    <dependency>
      <groupId>software.amazon.awssdk</groupId>  <!--Add v2 BOM dependency. -->
      <artifactId>bom</artifactId>
      <version>2.27.21</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
```

### 2. v1 クラスインポートステートメントのファイルを検索する
<a name="migration-steps-example-step2"></a>

アプリケーションのコードで `import com.amazonaws.services` の一意の出現箇所を検索します。これにより、プロジェクトで使用される v1 依存関係を特定できます。アプリケーションに v1 依存関係が列挙された Maven POM ファイルがある場合は、代わりにこの情報を使用できます。

この例では、[`ripgrep` (rg)](https://github.com/BurntSushi/ripgrep) コマンドを使用してコードベースを検索します。

コードベースのルートから、次の `ripgrep` コマンドを実行します。`ripgrep` がインポートステートメントを検出すると、それらは `cut`、`sort`、および `uniq` コマンドにパイプされ、SERVICE\$1ID が隔離されます。

```
rg --no-filename 'import\s+com\.amazonaws\.services' | cut -d '.' -f 4 | sort | uniq
```

このアプリケーションでは、次の SERVICE\$1ID がコンソールにログ記録されます。

```
autoscaling
cloudformation
ec2
identitymanagement
```

これは、`import` ステートメントで次の各パッケージ名が少なくとも 1 回出現したことを示しています。今回の目的では、個々のクラス名は関係ありません。使用される SERVICE\$1ID が必要なだけです。

```
com.amazonaws.services.autoscaling.*
com.amazonaws.services.cloudformation.*
com.amazonaws.services.ec2.*
com.amazonaws.services.identitymanagement.*
```

### 3. v1 インポートステートメントから v2 Maven の依存関係を特定する
<a name="migration-steps-example-step3"></a>

ステップ 2 で隔離した v1 の SERVICE\$1ID (例えば `autoscaling` と `cloudformation`) は、ほとんどの場合同じ v2 SERVICE\$1ID にマッピングできます。v2 Maven artifactId はほとんどの場合 SERVICE\$1ID と一致するため、POM ファイルに依存関係ブロックを追加するために必要な情報は揃っています。

次の表は、v2 の依存関係を特定する方法を示しています。


| v1 SERVICE\$1ID のマッピング先パッケージ名 | v2 SERVICE\$1ID のマッピング先パッケージ名 | v2 Maven の依存関係 | 
| --- | --- | --- | 
|  **ec2** `com.amazonaws.services.ec2.*`  |  **ec2** `software.amazon.awssdk.services.ec2.*`  |  <pre><dependency><br />  <groupId>software.amazon.awssdk</groupId><br />  <artifactId>ec2</artifactId><br /></dependency></pre>  | 
|  **自動スケーリング** `com.amazonaws.services.autoscaling.*`  |  **自動スケーリング** `software.amazon.awssdk.services.autoscaling.*`  |  <pre><dependency><br />  <groupId>software.amazon.awssdk</groupId><br />  <artifactId>autoscaling</artifactId><br /></dependency></pre>  | 
| cloudformation`com.amazonaws.services.cloudformation.*` | cloudformation`software.amazon.awssdk.cloudformation.*` |  <pre><dependency><br />  <groupId>software.amazon.awssdk</groupId><br />  <artifactId>cloudformation</artifactId><br /></dependency></pre>  | 
| identitymanagement\$1`com.amazonaws.services.identitymanagement.*` | iam\$1`software.amazon.awssdk.iam.*` |  <pre><dependency><br />  <groupId>software.amazon.awssdk</groupId><br />  <artifactId>iam</artifactId><br /></dependency></pre>  | 

\$1 `identitymanagement` から `iam` へのマッピングは例外であり、SERVICE\$1ID がバージョン間で異なります。Maven または Gradle が v2 依存関係を解決できない場合の例外については、「[パッケージ名から Maven artifactId へのマッピング](#migration-serviceid-artifactid-mapping)」を参照してください。

### 4. POM ファイルに v2 依存関係要素を追加する
<a name="migration-steps-example-step4"></a>

ステップ 3 では、POM ファイルに追加する必要がある 4 つの依存関係ブロックを特定しました。ステップ 1 で BOM を指定しているため、バージョンを追加する必要はありません。インポートが追加されると、POM ファイルには次の依存関係要素が含まれるようになります。

```
    ...
  <dependencies>
    ...
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>autoscaling</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>iam</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>cloudformation</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>ec2</artifactId>
    </dependency>
    ...
  </dependencies>
    ...
```

### 5. Java ファイルで、v1 クラスを v2 クラスに段階的に変更する
<a name="migration-steps-example-step5"></a>

移行するメソッドでは、以下が確認できます。
+ `com.amazonaws.services.ec2.AmazonEC2Client` からの EC2 サービスクライアント。
+ 使用される複数の EC2 モデルクラス。たとえば、`DescribeInstancesRequest` や `DescribeInstancesResult` など。

```
import com.amazonaws.ClientConfiguration;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.RegionUtils;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.AmazonEC2Exception;
import com.amazonaws.services.ec2.model.CreateTagsRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesResult;
import com.amazonaws.services.ec2.model.Instance;
import com.amazonaws.services.ec2.model.InstanceStateName;
import com.amazonaws.services.ec2.model.Reservation;
import com.amazonaws.services.ec2.model.Tag;
import com.amazonaws.services.ec2.model.TerminateInstancesRequest;
...
private static List<Instance> getRunningInstances(AmazonEC2Client ec2, List<String> instanceIds)
    List<Instance> runningInstances = new ArrayList<>();
    try {
        DescribeInstancesRequest request = new DescribeInstancesRequest()
                .withInstanceIds(instanceIds);
        DescribeInstancesResult result;
        do {
            // DescribeInstancesResponse is a paginated response, so use tokens with multiple re
            result = ec2.describeInstances(request);
            request.setNextToken(result.getNextToken());   // Prepare request for next page.
            for (final Reservation r : result.getReservations()) {
                for (final Instance instance : r.getInstances()) {
                    LOGGER.info("Examining instanceId: "+ instance.getInstanceId());
                    // if instance is in a running state, add it to runningInstances list.
                    if (RUNNING_STATES.contains(instance.getState().getName())) {
                        runningInstances.add(instance);
                    }
                }
            }
        } while (result.getNextToken() != null);
    } catch (final AmazonEC2Exception exception) {
        // if instance isn't found, assume its terminated and continue.
        if (exception.getErrorCode().equals(NOT_FOUND_ERROR_CODE)) {
            LOGGER.info("Instance probably terminated; moving on.");
        } else {
            throw exception;
        }
    }
    return runningInstances;
}
...
```

目標は、すべての v1 インポートを v2 インポートに置き換えることです。一度に 1 つずつクラスを処理します。

#### a. インポートステートメントまたはクラス名を置き換える
<a name="migration-example-step5-substep1"></a>

`describeRunningInstances` メソッドの最初のパラメータは v1 `AmazonEC2Client` インスタンスであることがわかります。次のいずれかを行います。
+ `com.amazonaws.services.ec2.AmazonEC2Client` のインポートを `software.amazon.awssdk.services.ec2.Ec2Client` に置き換え、 `AmazonEC2Client` を `Ec2Client` に変更します。
+ パラメータ型を `Ec2Client` に変更し、IDE に正しいインポートを表示させます。クライアント名が異なるため (`AmazonEC2Client` および `Ec2Client`)、IDE から v2 クラスをインポートするように求められます。クラス名が両方のバージョンで同じ場合、このアプローチは機能しません。

#### b. v1 モデルクラスを v2 の同等クラスに置き換える
<a name="migration-example-step5-substep2"></a>

v2 `Ec2Client` への変更後、IDE を使用する場合、次のステートメントにコンパイルエラーが表示されます。

```
                    result = ec2.describeInstances(request);
```

コンパイルエラーは、v1 の `DescribeInstancesRequest` のインスタンスを v2 `Ec2Client` `describeInstances` メソッドのパラメータとして使用した結果です。修正するには、次の置換を行うかインポートステートメントを作成します。


| 置換 | デプロイに | 
| --- | --- | 
|  <pre>import com.amazonaws.services.ec2.model.DescribeInstancesRequest</pre>  |  <pre>import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest</pre>  | 

#### c。v1 コンストラクタを v2 ビルダーに変更します。
<a name="migration-example-step5-substep3"></a>

[v2 クラスにコンストラクタがない](migration-whats-different.md#immutable-classes)ため、引き続きコンパイルエラーが表示されます。修正するには、以下の変更を加えます。


| 変更 | まで | 
| --- | --- | 
|  <pre>final DescribeInstancesRequest request = new DescribeInstancesRequest()<br />        .withInstanceIds(instanceIdsCopy);</pre>  |  <pre>final DescribeInstancesRequest request = DescribeInstancesRequest.builder()<br />        .instanceIds(instanceIdsCopy)<br />        .build();</pre>  | 

#### d。v1 `*Result` レスポンスオブジェクトを v2 の同等の `*Response` オブジェクトに置き換える
<a name="migration-example-step5-substep4"></a>

v1 と v2 の一貫した違いは、[v2 のすべてのレスポンスオブジェクトが `*Result` ではなく `*Response` で終わることです](migration-whats-different.md#model-classname-changes)。v1 `DescribeInstancesResult` インポートを v2 インポート `DescribeInstancesResponse` に置き換えます。

#### d。API を変更する
<a name="migration-example-step5-substep5"></a>

次のステートメントにはいくつかの変更が必要です。

```
request.setNextToken(result.getNextToken());
```

v2 では、[セッターメソッド](migration-whats-different.md#setter-getter-methods)は `set` または `prefix` を使用しません。プレフィックスが `get` のゲッターメソッドも SDK for Java 2.x では廃止されています。

`request` インスタンスなどのモデルクラスは v2 では変更できないため、ビルダーを使用して新しい `DescribeInstancesRequest` を作成する必要があります。

v2 では、 ステートメントは次のようになります。

```
request = DescribeInstancesRequest.builder()
        .nextToken(result.nextToken())
        .build();
```

#### d。メソッドが v2 クラスでコンパイルされるまで繰り返す
<a name="migration-example-step5-substep6"></a>

残りのコードを処理します。v1 インポートを v2 インポートに置き換え、コンパイルエラーを修正します。必要に応じて、[v2 API のリファレンス](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ec2/package-summary.html)と[相違点に関する情報](migration-whats-different.md)を参照してください。

この単一のメソッドを移行した後、v2 コードは次のようになります。

```
import com.amazonaws.ClientConfiguration;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.RegionUtils;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.AmazonEC2Exception;
import com.amazonaws.services.ec2.model.CreateTagsRequest;
import com.amazonaws.services.ec2.model.InstanceStateName;
import com.amazonaws.services.ec2.model.Tag;
import com.amazonaws.services.ec2.model.TerminateInstancesRequest;

import software.amazon.awssdk.services.ec2.Ec2Client;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesResponse;
import software.amazon.awssdk.services.ec2.model.Ec2Exception;
import software.amazon.awssdk.services.ec2.model.Instance;
import software.amazon.awssdk.services.ec2.model.Reservation;
...
private static List<Instance> getRunningInstances(Ec2Client ec2, List<String> instanceIds) {
    List<Instance> runningInstances = new ArrayList<>();
        try {
            DescribeInstancesRequest request = DescribeInstancesRequest.builder()
                    .instanceIds(instanceIds)
                    .build();
            DescribeInstancesResponse result;
            do {
                // DescribeInstancesResponse is a paginated response, so use tokens with multiple re
                result = ec2.describeInstances(request);
                request = DescribeInstancesRequest.builder()   // Prepare request for next page.
                        .nextToken(result.nextToken())
                        .build();
                for (final Reservation r : result.reservations()) {
                    for (final Instance instance : r.instances()) {
                        // if instance is in a running state, add it to runningInstances list.
                        if (RUNNING_STATES.contains(instance.state().nameAsString())) {
                            runningInstances.add(instance);
                        }
                    }
                }
            } while (result.nextToken() != null);
        } catch (final Ec2Exception exception) {
            // if instance isn't found, assume its terminated and continue.
            if (exception.awsErrorDetails().errorCode().equals(NOT_FOUND_ERROR_CODE)) {
                    LOGGER.info("Instance probably terminated; moving on.");
            } else {
                throw exception;
            }
        }
        return runningInstances;
    }
...
```

8 つのメソッドを持つ Java ファイルの 1 つのメソッドを移行するため、ファイルを処理する際に v1 と v2 のインポートが混在することになります。ステップの実行時に、最後の 6 つのインポートステートメントを追加しました。

すべてのコードを移行すると、v1 インポートステートメントはなくなります。

### 6. POM から v1 Maven の依存関係を削除し、ファイルから v1 インポートを削除する
<a name="migration-steps-example-step6"></a>

ファイル内のすべての v1 コードを移行した後、v2 SDK インポートステートメントは次のようになります。

```
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.regions.ServiceMetadata;
import software.amazon.awssdk.services.ec2.Ec2Client;
import software.amazon.awssdk.services.ec2.model.CreateTagsRequest;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest;
import software.amazon.awssdk.services.ec2.model.DescribeInstancesResponse;
import software.amazon.awssdk.services.ec2.model.Ec2Exception;
import software.amazon.awssdk.services.ec2.model.Instance;
import software.amazon.awssdk.services.ec2.model.InstanceStateName;
import software.amazon.awssdk.services.ec2.model.Reservation;
import software.amazon.awssdk.services.ec2.model.Tag;
import software.amazon.awssdk.services.ec2.model.TerminateInstancesRequest;
```

アプリケーション内の*すべて*のファイルを移行した後、POM ファイルに v1 依存関係は必要ありません。使用している場合は、`dependencyManagement` セクションから v1 BOM と、すべての v1 依存関係ブロックを削除します。

### 7. v2 API の拡張機能を使用するようにコードをリファクタリングする
<a name="migration-steps-example-step7"></a>

移行しているスニペットでは、オプションで v2 ページネーターを使用し、SDK でより多くのデータに対するトークンベースのリクエストを管理できます。

`do` 句全体を以下に置き換えることができます。

```
                DescribeInstancesIterable responses = ec2.describeInstancesPaginator(request);

                responses.reservations().stream()
                        .forEach(reservation -> reservation.instances()
                                .forEach(instance -> {
                                    if (RUNNING_STATES.contains(instance.state().nameAsString())) {
                                        runningInstances.put(instance.instanceId(), instance);
                                    }
                                }));
```

## パッケージ名から Maven artifactId へのマッピング
<a name="migration-serviceid-artifactid-mapping"></a>

Maven または Gradle プロジェクトを SDK for Java の v1 から v2 に移行するときは、ビルドファイルに追加する依存関係を特定する必要があります。[ステップバイステップの移行手順](#migration-steps) (ステップ 3) で説明されているアプローチでは、インポートステートメントのパッケージ名を開始点として使用して、ビルドファイルに追加する依存関係 (artifactIds) を決定します。

このトピックの情報を使用して、v1 パッケージ名を v2 artifactIds にマッピングできます。

### パッケージ名と Maven artifactIds で使用される一般的な命名規則
<a name="migration-naming-convention"></a>

次の表は、SDK が特定の SERVICE\$1ID に使用する一般的な命名規則を示しています。SERVICE\$1ID は の一意の識別子です AWS のサービス。例えば、Amazon S3 サービスの SERVICE\$1ID は `s3` であり、`cognitoidentity` は Amazon Cognito ID の SERVICE\$1ID です。


| v1 パッケージ名 (インポートステートメント) | v1 artifactId | v2 artifactId | v2 パッケージ名 (インポートステートメント) | 
| --- | --- | --- | --- | 
| com.amazonaws.services.SERVICE\$1ID | aws-java-sdk-SERVICE\$1ID | SERVICE\$1ID | software.amazon.awssdk.services.SERVICE\$1ID | 
|   | 
| Amazon Cognito ID の例 (SERVICE\$1ID: cognitoidentity) | 
| com.amazonaws.services.cognitoidentity | aws-java-sdk-cognitoidentity | cognitoidentity | software.amazon.awssdk.services.cognitoidentity | 

### SERVICE\$1ID の違い
<a name="migration-serviceid-diffs"></a>

#### v1 内
<a name="migration-serviceid-diffs-withinv1"></a>

同じサービスであっても、パッケージ名の SERVICE\$1ID と artifactId の SERVICE\$1ID が異なる場合があります。例えば、次の表の CloudWatch Metrics 行は、`metrics` がパッケージ名の SERVICE\$1ID であり、`cloudwatchmetrics` が artifactId の SERVICE\$1ID であることを示しています。

#### v2 内
<a name="migration-serviceid-diffs-withinv2"></a>

パッケージ名と artifactId で使用される SERVICE\$1ID に違いはありません。

#### V1 と V2 間
<a name="migration-serviceid-diffs-btwv1v2"></a>

ほとんどのサービスでは、v2 の SERVICE\$1ID はパッケージ名と artifactId の両方で v1 の SERVICE\$1ID と同じです。この例は、前の表に示した `cognitoedentity` SERVICE\$1ID です。ただし、次の表に示すように、一部の SERVICE\$1ID は SDK によって異なります。

いずれかの v1 列の**太字の SERVICE\$1ID** は、v2 で使用される SERVICE\$1ID とは異なることを示します。


| サービス名 | v1 パッケージ名 | v1 artifactId | v2 artifactId | v2 パッケージ名 | 
| --- | --- | --- | --- | --- | 
|  |  最初の行に示すように、すべてのパッケージ名は `com.amazonaws.services` で始まります。  |  最初の行に示すように、すべての artifactId はタグで囲まれます。  |  最初の行に示すように、すべての artifactId はタグで囲まれます。  |  最初の行に示すように、すべてのパッケージ名は `software.amazon.awssdk` で始まります。  | 
|  | 
| API ゲートウェイ | com.amazonaws.services.apigateway | <artifactId>aws-java-sdk-api-gateway</artifactId> | <artifactId>apigateway</artifactId> | software.amazon.awssdk.services.apigateway | 
| App Registry | appregistry | appregistry | servicecatalogappregistry | servicecatalogappregistry | 
| Application Discovery | applicationdiscovery | 検出 | applicationdiscovery | applicationdiscovery | 
| Augmented AI Runtime | augmentedairuntime | augmentedairuntime | sagemakera2iruntime | sagemakera2iruntime | 
| Certificate Manager | certificatemanager | acm | acm | acm | 
| CloudControl API | cloudcontrolapi | cloudcontrolapi | cloudcontrol | cloudcontrol | 
| CloudSearch | cloudsearchv2 | cloudsearch | cloudsearch | cloudsearch | 
| CloudSearch Domain | cloudsearchdomain | cloudsearch | cloudsearchdomain | cloudsearchdomain | 
| CloudWatch Events | cloudwatchevents | イベント | cloudwatchevents | cloudwatchevents | 
| CloudWatch Evidently | cloudwatchevidently | cloudwatchevidently | evidently | evidently | 
| CloudWatch Logs | ログ | ログ | cloudwatchlogs | cloudwatchlogs | 
| CloudWatch メトリクス | メトリクス | cloudwatchmetrics | cloudwatch | cloudwatch | 
| CloudWatch RUM | cloudwatchrum | cloudwatchrum | rum | rum | 
| Cognito Identity Provider | cognitoidp | cognitoidp | cognitoidentityprovider | cognitoidentityprovider | 
| Connect Campaign | connectcampaign | connectcampaign | connectcampaigns | connectcampaigns | 
| Connect Wisdom | connectwisdom | connectwisdom | wisdom | wisdom | 
| Database Migration Service | databasemigrationservice | dms | databasemigration | databasemigration | 
| DataZone | datazone | datazoneexternal | datazone | datazone | 
| DynamoDB | dynamodbv2 | dynamodb | dynamodb | dynamodb | 
| Elastic File System | elasticfilesystem | efs | efs | efs | 
| Elastic Map Reduce | elasticmapreduce | emr | emr | emr | 
| Glue DataBrew | gluedatabrew | gluedatabrew | databrew | databrew | 
| IAM Roles Anywhere | iamrolesanywhere | iamrolesanywhere | rolesanywhere | rolesanywhere | 
| ID 管理 | identitymanagement | iam | iam | iam | 
| IoT Data | iotdata | iot | iotdataplane | iotdataplane | 
| Kinesis Analytics | kinesisanalytics | kinesis | kinesisanalytics | kinesisanalytics | 
| Kinesis Firehose | kinesisfirehose | kinesis | firehose | firehose | 
| Kinesis Video Signaling Channels | kinesisvideosignalingchannels | kinesisvideosignalingchannels | kinesisvideosignaling | kinesisvideosignaling | 
| Lex | lexruntime | lex | lexruntime | lexruntime | 
| Lookout For Vision | lookoutforvision | lookoutforvision | lookoutvision | lookoutvision | 
| Mainframe Modernization | mainframemodernization | mainframemodernization | m2 | m2 | 
| Marketplace Metering | marketplacemetering | marketplacemeteringservice | marketplacemetering | marketplacemetering | 
| Managed Grafana | managedgrafana | managedgrafana | grafana | grafana | 
| Mechanical Turk | mturk | mechanicalturkrequester | mturk | mturk | 
| Migration Hub Strategy の推奨事項 | migrationhubstrategyrecommendations | migrationhubstrategyrecommendations | migrationhubstrategy | migrationhubstrategy | 
| Nimble Studio | nimblestudio | nimblestudio | nimble | nimble | 
| Private 5G | private5g | private5g | privatenetworks | privatenetworks | 
| Prometheus | prometheus | prometheus | amp | amp | 
| ごみ箱 | recyclebin | recyclebin | rbin | rbin | 
| Redshift Data API | redshiftdataapi | redshiftdataapi | Redshiftdata | Redshiftdata | 
| Route 53 | route53domains | route53 | route53domains | route53domains | 
| Sage Maker Edge Manager | sagemakeredgemanager | sagemakeredgemanager | sagemakeredge | sagemakeredge | 
| Security Token | securitytoken | sts | sts | sts | 
| Server Migration | servermigration | servermigration | sms | sms | 
| Simple Email | simpleemail | ses | ses | ses | 
| Simple Email V2 | simpleemailv2 | sesv2 | sesv2 | sesv2 | 
| Simple Systems Management | simplesystemsmanagement | ssm | ssm | ssm | 
| Simple Workflow | simpleworkflow | simpleworkflow | swf | swf | 
| ステップ関数 | ステップ関数 | ステップ関数 | sfn | sfn | 