Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Travailler avec le AWS CDK en Java

Mode de mise au point
Travailler avec le AWS CDK en Java - AWS Cloud Development Kit (AWS CDK) v2

Ceci est le guide du AWS CDK développeur de la version 2. L'ancien CDK v1 est entré en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.

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.

Ceci est le guide du AWS CDK développeur de la version 2. L'ancien CDK v1 est entré en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.

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.

Java est un langage client entièrement pris en charge AWS CDK et est considéré comme stable. Vous pouvez développer des AWS CDK applications en Java à l'aide d'outils courants, notamment le JDK (celui d'Oracle ou une distribution OpenJDK telle qu'Amazon Corretto) et Apache Maven.

AWS CDK Supporte Java 8 et versions ultérieures. Nous vous recommandons toutefois d'utiliser la dernière version possible, car les versions ultérieures du langage incluent des améliorations particulièrement pratiques pour le développement d' AWS CDK applications. Par exemple, Java 9 introduit la Map.of() méthode (un moyen pratique de déclarer des hashmaps qui seraient écrits sous forme de littéraux d'objets). TypeScript Java 10 introduit l'inférence de type local à l'aide du var mot clé.

Note

La plupart des exemples de code présentés dans ce guide du développeur fonctionnent avec Java 8. Quelques exemples d'utilisation Map.of() ; ces exemples incluent des commentaires indiquant qu'ils nécessitent Java 9.

Vous pouvez utiliser n'importe quel éditeur de texte ou un IDE Java capable de lire les projets Maven pour travailler sur vos AWS CDK applications. Nous fournissons des conseils sur Eclipse dans ce guide, mais IntelliJ IDEA et d'autres IDEs peuvent importer des projets Maven et peuvent être utilisés pour développer des AWS CDK applications en Java. NetBeans

Il est possible d'écrire AWS CDK des applications dans des langages hébergés par JVM autres que Java (par exemple, Kotlin, Groovy, Clojure ou Scala), mais l'expérience n'est peut-être pas particulièrement idiomatique et nous ne sommes pas en mesure de fournir un support pour ces langages.

Commencez avec Java

Pour utiliser le AWS CDK, vous devez disposer d'un AWS compte et d'informations d'identification et avoir installé Node.js et le AWS CDK Toolkit. Consultez Commencer à utiliser le AWS CDK.

AWS CDK Les applications Java nécessitent Java 8 (v1.8) ou version ultérieure. Nous recommandons Amazon Corretto, mais vous pouvez utiliser n'importe quelle distribution OpenJDK ou le JDK d'Oracle. Vous aurez également besoin d'Apache Maven 3.5 ou version ultérieure. Vous pouvez également utiliser des outils tels que Gradle, mais les squelettes d'applications générés par le AWS CDK Toolkit sont des projets Maven.

Note

Obsolète linguistique tierce : la version linguistique n'est prise en charge que jusqu'à sa fin de vie (EOL) partagée par le fournisseur ou la communauté et est sujette à modification avec préavis.

Création d’un projet

Vous créez un nouveau AWS CDK projet en l'appelant cdk init dans un répertoire vide. Utilisez l'--languageoption et spécifiez java :

mkdir my-project cd my-project cdk init app --language java

cdk initutilise le nom du dossier du projet pour nommer les différents éléments du projet, notamment les classes, les sous-dossiers et les fichiers. Les traits d'union figurant dans le nom du dossier sont convertis en traits de soulignement. Toutefois, le nom doit sinon prendre la forme d'un identifiant Java ; par exemple, il ne doit pas commencer par un chiffre ni contenir d'espaces.

Le projet qui en résulte inclut une référence au package software.amazon.awscdk Maven. Il et ses dépendances sont automatiquement installés par Maven.

Si vous utilisez un IDE, vous pouvez désormais ouvrir ou importer le projet. Dans Eclipse, par exemple, choisissez Fichier > Importer > Maven > Projets Maven existants. Assurez-vous que les paramètres du projet sont définis pour utiliser Java 8 (1.8).

Gestion des modules AWS de la bibliothèque Construct

Utilisez Maven pour installer les packages AWS Construct Library, qui font partie du groupesoftware.amazon.awscdk. La plupart des constructions se trouvent dans l'artefactaws-cdk-lib, qui est ajouté aux nouveaux projets Java par défaut. Les modules destinés aux services dont le support CDK de niveau supérieur est encore en cours de développement se trouvent dans des packages « expérimentaux » distincts, nommés avec une version courte (aucun ou préfixe AWS Amazon) du nom de leur service. Effectuez une recherche dans le référentiel central Maven pour trouver les noms de toutes les bibliothèques AWS CDK et AWS Construct Module.

Note

L'édition Java de la référence d'API CDK indique également les noms des packages.

La prise en charge de la bibliothèque AWS Construct par certains services se trouve dans plusieurs espaces de noms. Par exemple, les fonctionnalités d'Amazon Route 53 sont divisées en software.amazon.awscdk.route53route53-patterns,route53resolver, etroute53-targets.

Le AWS CDK package principal est importé en code Java au formatsoftware.amazon.awscdk. Les modules des différents services de la bibliothèque AWS Construct se trouvent sous software.amazon.awscdk.services le même nom que leur package Maven. Par exemple, l'espace de noms du module Amazon S3 estsoftware.amazon.awscdk.services.s3.

Nous vous recommandons d'écrire une import instruction Java distincte pour chaque classe de bibliothèque de AWS construction que vous utilisez dans chacun de vos fichiers source Java, et d'éviter les importations de caractères génériques. Vous pouvez toujours utiliser le nom complet d'un type (y compris son espace de noms) sans instruction. import

Si votre application dépend d'un package expérimental, modifiez celle de votre projet pom.xml et ajoutez un nouvel <dependency> élément dans le <dependencies> conteneur. Par exemple, l'<dependency>élément suivant spécifie le module de bibliothèque de constructions CodeStar expérimentales :

<dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>codestar-alpha</artifactId> <version>2.0.0-alpha.10</version> </dependency>
Astuce

Si vous utilisez un IDE Java, il possède probablement des fonctionnalités permettant de gérer les dépendances de Maven. Nous vous recommandons toutefois de modifier pom.xml directement, sauf si vous êtes absolument certain que les fonctionnalités de l'IDE correspondent à ce que vous feriez à la main.

Gestion des dépendances dans Java

En Java, les dépendances sont spécifiées pom.xml et installées à l'aide de Maven. Le <dependencies> contenant comprend un <dependency> élément pour chaque emballage. Voici une section consacrée pom.xml à une application CDK Java typique.

<dependencies> <dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>aws-cdk-lib</artifactId> <version>2.14.0</version> </dependency> <dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>appsync-alpha</artifactId> <version>2.10.0-alpha.0</version> </dependency> </dependencies>
Astuce

De nombreux Java IDEs intègrent le support Maven et des pom.xml éditeurs visuels, ce qui peut vous être utile pour gérer les dépendances.

Maven ne prend pas en charge le verrouillage des dépendances. Bien qu'il soit possible de spécifier des plages de versionspom.xml, nous vous recommandons de toujours utiliser des versions exactes pour garantir la répétabilité de vos versions.

Maven installe automatiquement les dépendances transitives, mais il ne peut y avoir qu'une seule copie installée de chaque package. La version spécifiée le plus haut dans l'arborescence POM est sélectionnée ; les applications ont toujours le dernier mot quant à la version des packages à installer.

Maven installe ou met à jour automatiquement vos dépendances chaque fois que vous compilez (mvn compile) ou empaquetez (mvn package) votre projet. Le CDK Toolkit le fait automatiquement à chaque fois que vous l'exécutez, il n'est donc généralement pas nécessaire d'invoquer Maven manuellement.

AWS CDK expressions idiomatiques en Java

accessoires

Toutes les classes de la bibliothèque de AWS construction sont instanciées à l'aide de trois arguments : la portée dans laquelle la construction est définie (son parent dans l'arbre de construction), un identifiant, et props, un ensemble de paires clé/valeur que la construction utilise pour configurer les ressources qu'elle crée. D'autres classes et méthodes utilisent également le modèle « bundle of attributes » pour les arguments.

En Java, les accessoires sont exprimés à l'aide du modèle Builder. Chaque type de construction possède un type d'accessoire correspondant ; par exemple, la Bucket construction (qui représente un compartiment Amazon S3) prend comme accessoires une instance de. BucketProps

La BucketProps classe (comme toutes les classes d'accessoires AWS Construct Library) possède une classe interne appeléeBuilder. Le BucketProps.Builder type propose des méthodes pour définir les différentes propriétés d'une BucketProps instance. Chaque méthode renvoie l'Builderinstance, de sorte que les appels de méthode peuvent être enchaînés pour définir plusieurs propriétés. À la fin de la chaîne, vous appelez build() pour réellement produire l'BucketPropsobjet.

Bucket bucket = new Bucket(this, "amzn-s3-demo-bucket", new BucketProps.Builder() .versioned(true) .encryption(BucketEncryption.KMS_MANAGED) .build());

Les constructions et autres classes qui prennent un objet semblable à un accessoire comme argument final proposent un raccourci. La classe possède son propre objet qui Builder l'instancie ainsi que son objet props en une seule étape. De cette façon, vous n'avez pas besoin d'instancier explicitement (par exemple) à la fois BucketProps et a, et Bucket vous n'avez pas besoin d'importer le type d'accessoire.

Bucket bucket = Bucket.Builder.create(this, "amzn-s3-demo-bucket") .versioned(true) .encryption(BucketEncryption.KMS_MANAGED) .build();

Lorsque vous dérivez votre propre construction à partir d'une construction existante, vous souhaiterez peut-être accepter des propriétés supplémentaires. Nous vous recommandons de suivre ces modèles de création. Cependant, cela n'est pas aussi simple que de sous-classer une classe de construction. Vous devez fournir vous-même les pièces mobiles des deux nouvelles Builder classes. Vous préférerez peut-être simplement que votre construction accepte un ou plusieurs arguments supplémentaires. Vous devez fournir des constructeurs supplémentaires lorsqu'un argument est facultatif.

Structures génériques

Dans certains cas APIs, ils AWS CDK utilisent des JavaScript tableaux ou des objets non typés comme entrée dans une méthode. (Voir, par exemple, AWS CodeBuild la BuildSpec.fromObject()méthode.) En Java, ces objets sont représentés parjava.util.Map<String, Object>. Dans les cas où les valeurs sont toutes des chaînes, vous pouvez utiliserMap<String, String>.

Java ne permet pas d'écrire des littéraux pour de tels conteneurs comme le font d'autres langages. Dans Java 9 et versions ultérieures, vous pouvez facilement java.util.Map.of()définir des cartes comportant jusqu'à dix entrées en ligne avec l'un de ces appels.

java.util.Map.of( "base-directory", "dist", "files", "LambdaStack.template.json" )

Pour créer des cartes comportant plus de dix entrées, utilisez java.util.Map.ofEntries().

Si vous utilisez Java 8, vous pouvez fournir vos propres méthodes similaires à celles-ci.

JavaScript les tableaux sont représentés sous la forme List<Object> ou List<String> en Java. La méthode java.util.Arrays.asList est pratique pour définir List un s court.

List<String> cmds = Arrays.asList("cd lambda", "npm install", "npm install typescript")

Valeurs manquantes

En Java, les valeurs manquantes dans AWS CDK des objets tels que les accessoires sont représentées parnull. Vous devez tester explicitement toute valeur qui pourrait l'être null pour vous assurer qu'elle contient une valeur avant de faire quoi que ce soit avec elle. Java n'a pas de « sucre syntaxique » pour aider à gérer les valeurs nulles comme le font certains autres langages. Apache ObjectUtil peut vous être firstNonNullutile dans certaines situations. defaultIfNull Vous pouvez également écrire vos propres méthodes d'assistance statiques pour faciliter la gestion des valeurs potentiellement nulles et rendre votre code plus lisible.

Créez et exécutez des applications CDK

Compile AWS CDK automatiquement votre application avant de l'exécuter. Cependant, il peut être utile de créer votre application manuellement pour vérifier les erreurs et exécuter des tests. Vous pouvez le faire dans votre IDE (par exemple, appuyez sur Ctrl-B dans Eclipse) ou en lançant mvn compile une invite de commande dans le répertoire racine de votre projet.

Exécutez tous les tests que vous avez écrits mvn test à l'aide d'une invite de commande.

Rubrique suivante :

En C#

Rubrique précédente :

En Python
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.