

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# step-by-stepInstructions de migration avec exemple
<a name="migration-steps"></a>

Cette section fournit un step-by-step guide pour migrer votre application qui utilise actuellement le SDK pour Java v1.x vers le SDK pour Java 2.x. La première partie présente un aperçu des étapes suivies par un exemple détaillé de migration.

Les étapes décrites ici décrivent une migration d'un cas d'utilisation normal, dans lequel l'application appelle à l' Services AWS aide de clients de service pilotés par un modèle. Si vous devez migrer du code utilisant un niveau supérieur APIs tel que [S3 Transfer Manager](migration-s3-transfer-manager.md) ou la [CloudFrontprésignature](migration-cloudfront-presigning.md), reportez-vous à la section sous la [Quelle est la différence entre la version AWS SDK pour Java 1.x et la version 2.x](migration-whats-different.md) table des matières.



L'approche décrite ici n'est qu'une suggestion. Vous pouvez utiliser d'autres techniques et tirer parti des fonctionnalités d'édition de code de votre IDE pour obtenir le même résultat. 

## Présentation des étapes
<a name="migration-steps-overview"></a>

### 1. Commencez par ajouter le SDK pour Java 2.x BOM
<a name="migration-steps-overview-step1"></a>

En ajoutant l'élément Maven BOM (Bill of Materials) pour le SDK pour Java 2.x à votre fichier POM, vous vous assurez que toutes les dépendances v2 dont vous avez besoin proviennent de la même version. Votre POM peut contenir à la fois des dépendances v1 et v2. Cela vous permet de migrer votre code progressivement plutôt que de le modifier en une seule fois.

#### SDK pour 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>
```

Vous pouvez trouver la [dernière version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom) sur le référentiel central de Maven.

### 2. Rechercher dans les fichiers les instructions d'importation de classe v1
<a name="migration-steps-overview-step2"></a>

En scannant les fichiers de votre application à la recherche du SERVICE\$1 IDs utilisé dans les importations de la version 1, vous trouverez le SERVICE\$1 IDs unique utilisé. Un SERVICE\$1ID est un nom court et unique pour un. Service AWS`cognitoidentity`C'est le cas par exemple du SERVICE\$1ID pour Amazon Cognito Identity.

### 3. Déterminez les dépendances Maven de la version 2 à partir des instructions d'importation de la version 1
<a name="migration-steps-overview-step3"></a>

Une fois que vous avez trouvé tous les SERVICE\$1 v1 uniquesIDs, vous pouvez déterminer l'artefact Maven correspondant à la dépendance v2 en vous référant à. [Nom du package vers les mappages Artifactid Maven](#migration-serviceid-artifactid-mapping)

### 4. Ajouter des éléments de dépendance v2 au fichier POM
<a name="migration-steps-overview-step4"></a>

Mettez à jour le fichier Maven POM avec les éléments de dépendance déterminés à l'étape 3.

### 5. Dans les fichiers Java, passez progressivement des classes v1 aux classes v2
<a name="migration-steps-overview-step5"></a>

Lorsque vous remplacez les classes v1 par des classes v2, apportez les modifications nécessaires pour prendre en charge l'API v2, par exemple en utilisant des générateurs plutôt que des constructeurs et en utilisant des getters et des setters fluides.

### 6. Supprimer les dépendances Maven v1 du POM et les importations v1 des fichiers
<a name="migration-steps-overview-step6"></a>

Après avoir migré votre code pour utiliser les classes v2, supprimez toutes les importations v1 restantes des fichiers et toutes les dépendances de votre fichier de compilation.

### 7. Refactorisez le code pour utiliser les améliorations de l'API v2
<a name="migration-steps-overview-step7"></a>

Une fois le code compilé et passé avec succès les tests, vous pouvez tirer parti des améliorations apportées à la version 2, telles que l'utilisation d'un autre client HTTP ou de différents paginateurs pour simplifier le code. Il s'agit d'une étape facultative.

## Exemple de migration
<a name="migration-steps-example"></a>

Dans cet exemple, nous migrons une application qui utilise le SDK pour Java v1 et accède Services AWSà plusieurs d'entre eux. Nous travaillons en détail sur la méthode v1 suivante à l'étape 5. Il s'agit d'une méthode dans une classe qui contient huit méthodes et l'application compte 32 classes.

### méthode v1 pour migrer
<a name="v1-snippet-collapsed"></a>

Seules les importations du SDK v1 sont répertoriées ci-dessous à partir du fichier Java.

```
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. Ajouter la version v2 de Maven BOM
<a name="migration-steps-example-step1"></a>

Ajoutez la nomenclature Maven pour le SDK pour Java 2.x au POM avec toutes les autres dépendances de la section. `dependencyManagement` Si votre fichier POM contient la nomenclature de la version 1 du SDK, laissez-la pour le moment. Il sera supprimé ultérieurement.

#### Gestion des dépendances POM dès le départ
<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. Rechercher dans les fichiers les instructions d'importation de classe v1
<a name="migration-steps-example-step2"></a>

Recherchez dans le code de l'application les occurrences uniques de`import com.amazonaws.services`. Cela nous aide à déterminer les dépendances v1 utilisées par le projet. Si votre application possède un fichier Maven POM dont les dépendances v1 sont répertoriées, vous pouvez utiliser ces informations à la place. 

Dans cet exemple, nous utilisons la commande [`ripgrep`(rg)](https://github.com/BurntSushi/ripgrep) pour effectuer une recherche dans la base de code.

À la racine de votre base de code, exécutez la `ripgrep` commande suivante. Une `ripgrep` fois les instructions d'importation trouvées, elles sont redirigées vers les `uniq` commandes `cut``sort`, et pour isoler le IDs SERVICE\$1. 

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

Pour cette application, les SERVICE\$1 suivants IDs sont enregistrés sur la console.

```
autoscaling
cloudformation
ec2
identitymanagement
```

Cela indique qu'au moins une occurrence de chacun des noms de package suivants a été utilisée dans les `import` instructions. Pour nos besoins, les noms de classe individuels n'ont pas d'importance. Nous avons juste besoin de trouver les SERVICE\$1 IDs utilisés.

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

### 3. Déterminez les dépendances Maven de la version 2 à partir des instructions d'importation de la version 1
<a name="migration-steps-example-step3"></a>

Le SERVICE\$1 IDs pour la v1 que nous avons isolé à partir de l'étape 2, par exemple`cloudformation`, `autoscaling` et — peut être mappé sur le même SERVICE\$1ID v2 pour la plupart. Étant donné que l'artifactid Maven v2 correspond au SERVICE\$1ID dans la plupart des cas, vous disposez des informations dont vous avez besoin pour ajouter des blocs de dépendance à votre fichier POM.

Le tableau suivant montre comment déterminer les dépendances de la version 2.


| v1 SERVICE\$1ID correspond à...nom du package | v2 SERVICE\$1ID correspond à...nom du package | Dépendance Maven v2 | 
| --- | --- | --- | 
|  **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>  | 
|  **mise à l'échelle automatique** `com.amazonaws.services.autoscaling.*`  |  **mise à l'échelle automatique** `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>  | 
| gestion de l'identité\$1`com.amazonaws.services.identitymanagement.*` | je suis\$1`software.amazon.awssdk.iam.*` |  <pre><dependency><br />  <groupId>software.amazon.awssdk</groupId><br />  <artifactId>iam</artifactId><br /></dependency></pre>  | 

\$1 Le `iam` mappage `identitymanagement` vers est une exception lorsque le SERVICE\$1ID diffère d'une version à l'autre. Reportez-vous [Nom du package vers les mappages Artifactid Maven](#migration-serviceid-artifactid-mapping) aux exceptions si Maven ou Gradle ne peuvent pas résoudre la dépendance à la v2.

### 4. Ajouter des éléments de dépendance v2 au fichier POM
<a name="migration-steps-example-step4"></a>

À l'étape 3, nous avons déterminé les quatre blocs de dépendance à ajouter au fichier POM. Nous n'avons pas besoin d'ajouter de version car nous avons spécifié la nomenclature à l'étape 1. Une fois les importations ajoutées, notre fichier POM contient les éléments de dépendance suivants.

```
    ...
  <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. Dans les fichiers Java, passez progressivement des classes v1 aux classes v2
<a name="migration-steps-example-step5"></a>

Dans la méthode de migration, nous voyons
+ Un client du service EC2 de. `com.amazonaws.services.ec2.AmazonEC2Client`
+ Plusieurs classes de modèles EC2 ont été utilisées. Par exemple `DescribeInstancesRequest` et`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;
}
...
```

Notre objectif est de remplacer toutes les importations v1 par des importations v2. Nous procédons un cours à la fois.

#### a. Remplacer la déclaration d'importation ou le nom de classe
<a name="migration-example-step5-substep1"></a>

Nous voyons que le premier paramètre de la `describeRunningInstances` méthode est une `AmazonEC2Client` instance v1. Effectuez l’une des actions suivantes :
+ Remplacez le fichier d'importation `com.amazonaws.services.ec2.AmazonEC2Client` par `software.amazon.awssdk.services.ec2.Ec2Client` et `AmazonEC2Client` remplacez-le par`Ec2Client`.
+ Changez le type de paramètre en `Ec2Client` et laissez l'IDE nous demander l'importation correcte. Notre IDE nous demandera d'importer la classe v2 car les noms des clients diffèrent... `AmazonEC2Client` et`Ec2Client`. Cette approche ne fonctionne pas si le nom de classe est le même dans les deux versions.

#### b. Remplacer les classes de modèles v1 par des équivalents v2
<a name="migration-example-step5-substep2"></a>

Après le passage à la v2`Ec2Client`, si nous utilisons un IDE, nous voyons des erreurs de compilation dans l'instruction suivante.

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

L'erreur de compilation résulte de l'utilisation d'une instance de v1 `DescribeInstancesRequest` comme paramètre de la `Ec2Client` `describeInstances` méthode v2. Pour résoudre le problème, effectuez les instructions de remplacement ou d'importation suivantes.


| replace | avec | 
| --- | --- | 
|  <pre>import com.amazonaws.services.ec2.model.DescribeInstancesRequest</pre>  |  <pre>import software.amazon.awssdk.services.ec2.model.DescribeInstancesRequest</pre>  | 

#### c. Changez les constructeurs v1 en constructeurs v2.
<a name="migration-example-step5-substep3"></a>

Nous voyons toujours des erreurs de compilation car il [n'y a pas de constructeur sur les classes v2](migration-whats-different.md#immutable-classes). Pour corriger cela, apportez les modifications suivantes.


| modification | to | 
| --- | --- | 
|  <pre>final DescribeInstancesRequest request = new DescribeInstancesRequest()<br />        .withInstanceIds(instanceIdsCopy);</pre>  |  <pre>final DescribeInstancesRequest request = DescribeInstancesRequest.builder()<br />        .instanceIds(instanceIdsCopy)<br />        .build();</pre>  | 

#### d. Remplacer les objets de `*Result` réponse v1 par des `*Response` équivalents v2
<a name="migration-example-step5-substep4"></a>

Une différence constante entre la v1 et la v2 est que tous les [objets de réponse de la v2 se terminent par `*Response` au lieu de `*Result`](migration-whats-different.md#model-classname-changes). Remplacez l'`DescribeInstancesResult`importation v1 par l'importation v2,`DescribeInstancesResponse`.

#### d. Apporter des modifications à l'API
<a name="migration-example-step5-substep5"></a>

La déclaration suivante nécessite quelques modifications.

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

Dans la version 2, [les méthodes setter](migration-whats-different.md#setter-getter-methods) n'utilisent pas le `set` ou avec`prefix`. Les méthodes Getter préfixées par `get` ont également disparu dans le SDK pour Java 2.x

Les classes de modèles, telles que l'`request`instance, sont immuables dans la version 2, nous devons donc en créer une nouvelle `DescribeInstancesRequest` avec un générateur.

Dans la version 2, l'instruction devient la suivante.

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

#### d. Répétez jusqu'à ce que la méthode soit compilée avec les classes v2
<a name="migration-example-step5-substep6"></a>

Continuez avec le reste du code. Remplacez les importations v1 par des importations v2 et corrigez les erreurs de compilation. Reportez-vous à la [référence de l'API v2](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ec2/package-summary.html) et à la [référence What's different](migration-whats-different.md) si nécessaire.

Après avoir migré cette méthode unique, nous avons le code v2 suivant.

```
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;
    }
...
```

Comme nous migrons une seule méthode dans un fichier Java avec huit méthodes, nous avons un mélange d'importations v1 et v2 au fur et à mesure que nous travaillons sur le fichier. Nous avons ajouté les six dernières instructions d'importation au fur et à mesure de l'exécution des étapes. 

Une fois que nous aurons migré tout le code, il n'y aura plus d'instructions d'importation v1.

### 6. Supprimer les dépendances Maven v1 du POM et les importations v1 des fichiers
<a name="migration-steps-example-step6"></a>

Après avoir migré tout le code v1 du fichier, nous avons les instructions d'importation du SDK v2 suivantes.

```
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;
```

Après avoir migré *tous les* fichiers de notre application, nous n'avons plus besoin des dépendances v1 dans notre fichier POM. Supprimez la nomenclature v1 de la `dependencyManagement` section, si vous en utilisez, ainsi que tous les blocs de dépendance v1.

### 7. Refactorisez le code pour utiliser les améliorations de l'API v2
<a name="migration-steps-example-step7"></a>

Pour l'extrait que nous avons migré, nous pouvons éventuellement utiliser un paginateur v2 et laisser le SDK gérer les demandes de données supplémentaires basées sur des jetons.

Nous pouvons remplacer l'intégralité de la `do` clause par la suivante.

```
                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);
                                    }
                                }));
```

## Nom du package vers les mappages Artifactid Maven
<a name="migration-serviceid-artifactid-mapping"></a>

Lorsque vous migrez votre projet Maven ou Gradle de la version v1 du SDK pour Java vers la version v2, vous devez déterminer les dépendances à ajouter à votre fichier de compilation. L'approche décrite à l'[step-by-stepInstructions de migration avec exemple](#migration-steps)étape 3 utilise les noms des packages dans les instructions d'importation comme point de départ pour déterminer les dépendances (sous forme d'artifactIds) à ajouter à votre fichier de compilation. 

Vous pouvez utiliser les informations de cette rubrique pour associer les noms des packages v1 aux ArtifactID de la version v2.

### Convention de dénomination commune utilisée dans les noms de packages et les ArtifactID de Maven
<a name="migration-naming-convention"></a>

Le tableau suivant indique la convention de dénomination courante SDKs utilisée pour un SERVICE\$1ID donné. Un SERVICE\$1ID est un identifiant unique pour un. Service AWS Par exemple, le SERVICE\$1ID du service Amazon S3 est `s3` et `cognitoidentity` est le SERVICE\$1ID d'Amazon Cognito Identity.


| nom du package v1 (déclaration d'importation) | Artifactid v1 | Artifactid v2 | nom du package v2 (instruction d'importation) | 
| --- | --- | --- | --- | 
| com.amazonaws.services.Service\$1ID | aws-java-sdk-IDENTIFIANT DE SERVICE | IDENTIFIANT\$1SERVICE | Software.Amazon.AWSSDK.Services.Service\$1ID | 
|   | 
| Exemple pour Amazon Cognito Identity (SERVICE\$1ID :) cognitoidentity | 
| com.amazonaws.services. identité cognito | aws-java-sdk- identité cognitive | identité cognito | software.amazon.awssdk.services. identité cognito | 

### Différences entre SERVICE\$1ID
<a name="migration-serviceid-diffs"></a>

#### Dans la version 1
<a name="migration-serviceid-diffs-withinv1"></a>

Dans certains cas, le SERVICE\$1ID est différent entre le nom du package et l'ArtifactiD du même service. Par exemple, la ligne CloudWatch Metrics du tableau suivant indique qu'il `metrics` s'agit du SERVICE\$1ID dans le nom du package mais `cloudwatchmetrics` du SERVICE\$1ID de l'artifactID.

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

Il n'y a aucune différence entre le SERVICE\$1ID utilisé dans les noms de package et les ArtifactID.

#### Entre v1 et v2
<a name="migration-serviceid-diffs-btwv1v2"></a>

Pour la majorité des services, le SERVICE\$1ID de la version v2 est identique au SERVICE\$1ID de la version 1 dans les noms de package et dans les artifactIds. Le `cognitoedentity` SERVICE\$1ID, comme indiqué dans le tableau précédent, en est un exemple. Cependant, certains SERVICE\$1 IDs diffèrent entre les deux SDKs, comme indiqué dans le tableau suivant.

Un **SERVICE\$1ID en gras** dans l'une des colonnes v1 indique qu'il est différent du SERVICE\$1ID utilisé dans la v2.


| Nom du service | nom du package v1 | Artifactid v1 | Artifactid v2 | nom du package v2 | 
| --- | --- | --- | --- | --- | 
|  |  Tous les noms de packages commencent par `com.amazonaws.services` le nom indiqué dans la première ligne.  |  Tous les ArtifactID sont inclus dans des balises, comme indiqué dans la première ligne.  |  Tous les ArtifactID sont inclus dans des balises, comme indiqué dans la première ligne.  |  Tous les noms de packages commencent par `software.amazon.awssdk` le nom indiqué dans la première ligne.  | 
|  | 
| API Gateway | com.amazonaws.services.apigateway | <artifactId>aws-java-sdk- passerelle API</artifactId> | <artifactId>passerelle apigatway</artifactId> | software.amazon.awssdk.services.apigateway | 
| Registre des applications | apregistry | apregistry | registre des applications du catalogue de services | registre des applications du catalogue de services | 
| Application Discovery | découverte d'applications | découverte | découverte d'applications | découverte d'applications | 
| Augmented AI Runtime | durée d'antenne accrue | durée d'antenne accrue | exécution de sagemakera2i | exécution de sagemakera2i | 
| Certificate Manager | gestionnaire de certificats | acm | acm | acm | 
| CloudControl API | API de contrôle du cloud | API de contrôle du cloud | contrôle du cloud | contrôle du cloud | 
| CloudSearch | CloudSearchv2 | cloudsearch | cloudsearch | cloudsearch | 
| CloudSearch Domaine | domaine de recherche dans le cloud | recherche dans le cloud | domaine de recherche dans le cloud | domaine de recherche dans le cloud | 
| CloudWatch Événements | événements CloudWatch | événements | événements CloudWatch | événements CloudWatch | 
| CloudWatch De toute évidence | Cloudwatch, évidemment | Cloudwatch, évidemment | evidently | evidently | 
| CloudWatch Journaux | journaux | journaux | journaux de surveillance du cloud | journaux de surveillance du cloud | 
| CloudWatch Métriques | métriques | métriques de CloudWatch | cloudwatch | cloudwatch | 
| CloudWatch Rhum | rhum Cloudwatch | rhum Cloudwatch | rum | rum | 
| Fournisseur d'identité Cognito | cognitoidp | cognitoidp | fournisseur d'identité cognito | fournisseur d'identité cognito | 
| Campagne Connect | campagne connect | campagne connect | connectez les campagnes | connectez les campagnes | 
| Connect Wisdom | connecter la sagesse | connecter la sagesse | wisdom | wisdom | 
| Database Migration Service | service de migration de base de données | dms | migration de base de données | migration de base de données | 
| DataZone | zone de données | zone de données externe | zone de données | zone de données | 
| DynamoDB | dynamodbv2 | dynamodb | dynamodb | dynamodb | 
| Système de fichiers Elastic | système de fichiers élastique | efs | efs | efs | 
| Elastic Map Reduce | elasticmapreduce | emr | emr | emr | 
| Glue DataBrew | bière à colle | bière à colle | databrew | databrew | 
| Rôles Anywhere IAM | je joue des rôles partout | je joue des rôles partout | rolesanywhere | rolesanywhere | 
| Gestion des identités | gestion de l'identité | iam | iam | iam | 
| Données relatives à l'IoT | données IoT | iot | plan de données IoT | plan de données IoT | 
| Kinesis Analytics | kinesisanalytics | kinesis | kinesisanalytics | kinesisanalytics | 
| Kinesis Firehose | tuyau à incendie Kinesis | kinesis | firehose | firehose | 
| Canaux de signalisation vidéo Kinesis | canaux de signalisation vidéo kinesis | canaux de signalisation vidéo kinesis | signalisation vidéo kinesis | signalisation vidéo kinesis | 
| Lex | Lex Runtime | lex | Lex Runtime | Lex Runtime | 
| À l'affût de la vision | attention à la vision | attention à la vision | lookoutvision | lookoutvision | 
| Modernisation du mainframe | modernisation de l'ordinateur central | modernisation de l'ordinateur central | m2 | m2 | 
| Marketplace Metering | mesure du marché | service de mesure du marché | mesure du marché | mesure du marché | 
| Grafana géré | grafana géré | grafana géré | grafana | grafana | 
| Mechanical Turk | mturk | Requêteur mécanique | mturk | mturk | 
| Migration Hub Strategy Recommendations | recommandations relatives à la stratégie du pôle migratoire | recommandations relatives à la stratégie du pôle migratoire | stratégie du pôle migratoire | stratégie du pôle migratoire | 
| Studio agile | studio agile | studio agile | nimble | nimble | 
| 5G privée | 5 g privés | 5 g privés | réseaux privés | réseaux privés | 
| Prometheus | prométhée | prométhée | ampli | ampli | 
| Corbeille | corbeille | corbeille | rbin | rbin | 
| API de données Redshift | API de données Redshift | API de données Redshift | données redshift | données redshift | 
| Route 53 | Route 53 domaines | route53 | Route 53 domaines | Route 53 domaines | 
| Gestionnaire Sage Maker Edge | gestionnaire de sagemakeredge | gestionnaire de sagemakeredge | sagemakeredge | sagemakeredge | 
| Jeton de sécurité | jeton de sécurité | sts | sts | sts | 
| Migration de serveurs | migration de serveurs | migration de serveurs | sms | sms | 
| Courrier électronique simple | e-mail simple | ses | ses | ses | 
| Courrier électronique simple V2 | e-mail simple v2 | sesv2 | sesv2 | sesv2 | 
| Gestion simplifiée des systèmes | gestion simple des systèmes | ssm | ssm | ssm | 
| Flux de travail simplifié | flux de travail simple | flux de travail simple | swf | swf | 
| Step Functions | fonctions d'étape | fonctions d'étape | sfn | sfn | 