AWS Cloud9 n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus
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.
AWS CDK tutoriel pour AWS Cloud9
Ce didacticiel explique comment utiliser le AWS Cloud Development Kit (AWS CDK) dans un environnement de AWS Cloud9 développement. AWS CDK Il s'agit d'un ensemble d'outils logiciels et de bibliothèques que les développeurs peuvent utiliser pour modéliser les composants de AWS l'infrastructure sous forme de code.
AWS CDK Il inclut la bibliothèque AWS Construct que vous pouvez utiliser pour résoudre rapidement de nombreuses tâches AWS. Par exemple, vous pouvez utiliser la construction Fleet
pour déployer intégralement et en toute sécurité du code pour une flotte d'hôtes. Vous pouvez créer vos propres structures pour modéliser différents éléments de vos architectures, les partager avec d'autres personnes, ou les diffuser à la communauté. Pour en savoir plus, consultez le Guide du développeur AWS Cloud Development Kit.
Le fait de suivre ce didacticiel et de créer cet exemple peut entraîner des frais sur votre AWS
compte. Cela inclut les frais éventuels pour des services tels qu'Amazon EC2SNS, Amazon et AmazonSQS. Pour plus d'informations, consultez Amazon EC2 Pricing
Rubriques
Prérequis
Avant d'utiliser cet exemple, vérifiez que votre configuration respecte les conditions requises suivantes :
-
Vous devez disposer d'un environnement AWS Cloud9 EC2 de développement existant. Cet exemple suppose que vous disposez déjà d'un EC2 environnement connecté à une EC2 instance Amazon exécutant Amazon Linux ou Ubuntu Serveur. Si vous utilisez un autre type d'environnement ou de système d'exploitation, vous devrez peut-être adapter les instructions de cet exemple pour configurer les outils associés. Pour de plus amples informations, veuillez consulter Création d'un environnement dans AWS Cloud9.
-
Vous avez déjà ouvert AWS Cloud9 IDE le fichier correspondant à l'environnement existant. Lorsque vous ouvrez un environnement, AWS Cloud9 ouvre le champ IDE correspondant à cet environnement dans votre navigateur Web. Pour de plus amples informations, veuillez consulter Ouverture d'un environnement dans AWS Cloud9.
Étape 1 : Installer les outils requis
Au cours de cette étape, vous installez dans votre environnement tous les outils AWS CDK nécessaires pour exécuter un exemple écrit dans le langage TypeScript de programmation.
-
Node Version Manager, ou
nvm
, que vous utilisez pour installer Node.js ultérieurement. -
Node.js, qui est requis par l'exemple et contient le Node Package Manager, ou
npm
, que vous utilisez pour l'installation TypeScript et les AWS CDK versions ultérieures. -
TypeScript, qui est requis par cet exemple. (Il prend AWS CDK également en charge plusieurs autres langages de programmation.)
-
Le AWS CDK.
Étape 1.1 : Installer le Gestionnaire de version de nœud (nvm)
-
Lors d'une session de terminal dans le AWS Cloud9 IDE, assurez-vous que les dernières mises à jour de sécurité et corrections de bogues sont installées. Pour ce faire, exécutez la commande
yum update
(pour Amazon Linux) ouapt update
(pour Ubuntu Server). (Pour démarrer une nouvelle séance de terminal, dans la barre de menus, choisissez Window, Nouveau Terminal.)Pour Amazon Linux :
sudo yum -y update
Pour Ubuntu Server :
sudo apt update
-
Vérifiez si
nvm
est déjà installé. Pour ce faire, exécutez la commandenvm
avec l'option--version
.nvm --version
En cas de réussite, la sortie contient le numéro de version de
nvm
, et vous pouvez passer directement à Étape 1.2 : Installer Node.js.. -
Téléchargez et installez
nvm
. Pour ce faire, exécutez le script d'installation. Dans cet exemple, v0.33.0 est installé, mais vous pouvez vérifier la dernière version denvm
ici. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
-
Commencez à utiliser
nvm
. Vous pouvez fermer la session de terminal et la redémarrer, ou approvisionner le fichier~/.bashrc
qui contient les commandes pour chargernvm
.. ~/.bashrc
Étape 1.2 : Installer Node.js.
-
Vérifiez si vous avez déjà installé Node.js et, si vous le faites, assurez-vous qu'il s'agit de la version 16.17.0 ou d'une version supérieure. Cet exemple a été testé avec Node.js 16.17.0. Pour vérifier, la session du terminal étant toujours ouverte dans leIDE, exécutez la
node
commande avec l'--version
option.node --version
Si Node.js est bien installé, la sortie contient le numéro de version. Si le numéro de version est v16.17.0, passez directement à Étape 1.3 : Installation TypeScript.
-
Installez Node.js 16 en exécutant la
nvm
commande avec l'install
action.Note
Vous pouvez également exécuter
nvm install node
pour installer la version support à long terme (LTS) de Node.js. AWS Cloud9 le support suit la LTS version de Node.js.nvm install v16
-
Commencez à utiliser Node.js 16. Pour ce faire, exécutez la commande
nvm
avec l'actionalias
, le numéro de version d'alias et la version à utiliser pour cet alias, comme suit.nvm alias default 16
Note
La commande précédente définit Node.js 16 comme version par défaut de Node.js. Vous pouvez également exécuter la commande
nvm
ainsi que l'actionuse
au lieu de l'actionalias
(par exemple,nvm use 16.17.0
). Cependant, l'actionuse
fait que cette version de Node.js s'exécute uniquement lorsque la session de terminal actuelle est en cours d'exécution. -
Pour confirmer que vous utilisez Node.js 16, réexécutez la
node --version
commande. Si la bonne version est installée, la sortie contient la version v16.
Étape 1.3 : Installation TypeScript
-
Vérifiez si vous l'avez déjà TypeScript installé. Pour ce faire, la session du terminal étant toujours ouverte dans leIDE, exécutez le TypeScript compilateur de ligne de commande avec l'
--version
option.tsc --version
Si vous l'avez TypeScript installé, la sortie contient le numéro de TypeScript version. S' TypeScript il est installé, passez directement àÉtape 1.4 : Installation du AWS CDK.
-
Installez TypeScript. Pour ce faire, exécutez la
npm
commande avec l'install
action, l'-g
option et le nom du TypeScript package. Cela s'installe TypeScript en tant que package global dans l'environnement.npm install -g typescript
-
Confirmez qu' TypeScript il est installé. Pour ce faire, exécutez le TypeScript compilateur en ligne de commande avec l'
--version
option.tsc --version
S'il TypeScript est installé, la sortie contient le numéro de TypeScript version.
Étape 1.4 : Installation du AWS CDK
-
Vérifiez si vous l'avez déjà AWS CDK installé. Pour ce faire, la session du terminal étant toujours ouverte dans leIDE, exécutez la
cdk
commande avec l'--version
option.cdk --version
Si le AWS CDK est installé, la sortie contient les numéros de AWS CDK version et de build. Passez directement à Étape 2 : Ajouter du code.
-
Installez le AWS CDK en exécutant la
npm
commande accompagnée de l'install
action, du nom du AWS CDK package à installer et de l'-g
option permettant d'installer le package globalement dans l'environnement.npm install -g aws-cdk
-
Vérifiez que le AWS CDK est installé et correctement référencé. Pour ce faire, exécutez la commande
cdk
avec l'option--version
.cdk --version
En cas de succès, les numéros de AWS CDK version et de version sont affichés.
Étape 2 : Ajouter du code
Au cours de cette étape, vous créez un exemple de TypeScript projet contenant tout le code source dont vous avez besoin pour déployer une AWS CloudFormation pile par programmation. AWS CDK Cette pile crée un SNS sujet Amazon et une SQS file d'attente Amazon dans votre AWS compte, puis abonne la file d'attente au sujet.
-
La session du terminal étant toujours ouverte dans leIDE, créez un répertoire pour stocker le code source du projet, par exemple un
~/environment/hello-cdk
répertoire dans votre environnement. Puis basculez sur ce répertoire.rm -rf ~/environment/hello-cdk # Remove this directory if it already exists. mkdir ~/environment/hello-cdk # Create the directory. cd ~/environment/hello-cdk # Switch to the directory.
-
Configurez le répertoire en tant que projet de TypeScript langue pour AWS CDK. Pour ce faire, exécutez la commande
cdk
avec l'actioninit
, le modèlesample-app
et l'option--language
, ainsi que le nom du langage de programmation.cdk init sample-app --language typescript
Cela crée les fichiers et sous-répertoires suivants dans le répertoire.
-
Un sous-répertoire masqué
.git
et un fichier masqué.gitignore
, ce qui rend le projet compatible avec des outils de contrôle de source tel que Git. -
Un sous-répertoire
lib
, qui inclut un fichierhello-cdk-stack.ts
. Ce fichier contient le code de votre AWS CDK pile. Ce code est décrit dans l'étape suivante de cette procédure. -
Un sous-répertoire
bin
, qui inclut un fichierhello-cdk.ts
. Ce fichier contient le point d'entrée de votre AWS CDK application. -
Un répertoire
node_modules
qui contient les packages de code pris en charge, que l'application et la pile peuvent utiliser selon leurs besoins. -
Un fichier masqué
.npmignore
, qui répertorie les types de sous-répertoires et les fichiers dontnpm
n'a pas besoin lorsqu'il crée le code. -
Un fichier
cdk.json
, qui contient les informations pour exécuter la commandecdk
plus facilement. -
Un fichier
package-lock.json
, qui contient des informations quenpm
peut utiliser pour réduire la création et l'exécution d'erreurs éventuelles. -
Un fichier
package.json
, qui contient les informations pour exécuter la commandenpm
plus facilement et avec probablement moins d'erreurs de création et d'exécution. -
Un
README.md
fichier répertoriant les commandes utiles que vous pouvez exécuter avecnpm
et le AWS CDK. -
Un fichier
tsconfig.json
, qui contient les informations pour exécuter la commandetsc
plus facilement et avec probablement moins d'erreurs de création et d'exécution.
-
-
Dans la fenêtre Environnement, ouvrez le fichier
lib/hello-cdk-stack.ts
et recherchez le code suivant dans le fichier.import sns = require('@aws-cdk/aws-sns'); import sqs = require('@aws-cdk/aws-sqs'); import cdk = require('@aws-cdk/cdk'); export class HelloCdkStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const queue = new sqs.Queue(this, 'HelloCdkQueue', { visibilityTimeoutSec: 300 }); const topic = new sns.Topic(this, 'HelloCdkTopic'); topic.subscribeQueue(queue); } }
-
Les
Topic
classesStack
App
,StackProps
,Queue
, et représentent respectivement une AWS CloudFormation pile et ses propriétés, un programme exécutable, une SQS file d'attente Amazon et une SNS rubrique Amazon. -
La
HelloCdkStack
classe représente la AWS CloudFormation pile de cette application. Cette pile contient la nouvelle SQS file d'attente Amazon et la nouvelle SNS rubrique Amazon pour cette application.
-
-
Dans la fenêtre Environnement, ouvrez le fichier
bin/hello-cdk.ts
et recherchez le code suivant dans le fichier.#!/usr/bin/env node import cdk = require('@aws-cdk/cdk'); import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack'); app.run();
Ce code charge, instancie, puis exécute la classe
HelloCdkStack
à partir du fichierlib/hello-cdk-stack.ts
. -
npm
Utilisez-le pour exécuter le TypeScript compilateur afin de vérifier les erreurs de codage, puis d'activer le AWS CDK pour exécuter lebin/hello-cdk.js
fichier du projet. Pour ce faire, dans le répertoire racine du projet, exécutez la commandenpm
avec l'actionrun
, en spécifiant la valeur de la commandebuild
dans le fichierpackage.json
, comme suit.npm run build
La commande précédente exécute le TypeScript compilateur, qui ajoute des supports
bin/hello-cdk.d.ts
etlib/hello-cdk-stack.d.ts
des fichiers. Le compilateur transpile également les fichiershello-cdk-stack.ts
ethello-cdk.ts
dans les fichiershello-cdk-stack.js
ethello-cdk.js
.
Étape 3 : Exécuter le code
Au cours de cette étape, vous lui demandez AWS CDK de créer un modèle de AWS CloudFormation pile basé sur le code contenu dans le bin/hello-cdk.js
fichier. Vous lui demandez ensuite de AWS CDK déployer la pile, qui crée le SNS sujet Amazon et la SQS file d'attente Amazon, puis abonne la file d'attente au sujet. Vous pouvez alors confirmer que la rubrique et la file d'attente ont été déployées avec succès en envoyant un message à partir de la rubrique pour la file d'attente.
-
Demandez à AWS CDK créer le modèle de AWS CloudFormation pile. Pour ce faire, la session du terminal étant toujours ouverte dans le IDE répertoire racine du projet, exécutez la
cdk
commande avec l'synth
action et le nom de la pile.cdk synth HelloCdkStack
En cas de succès, la sortie affiche la
Resources
section du modèle de AWS CloudFormation pile. -
La première fois que vous déployez une AWS CDK application dans un environnement pour une combinaison de AWS compte et de AWS région spécifique, vous devez installer une pile bootstrap. Cette pile comprend diverses ressources dont elle a AWS CDK besoin pour effectuer ses différentes opérations. Par exemple, cette pile inclut un compartiment Amazon S3 AWS CDK utilisé pour stocker des modèles et des actifs au cours de ses processus de déploiement. Pour installer la pile d'amorçage, exécutez la commande
cdk
avec l'actionbootstrap
.cdk bootstrap
Note
Si vous exécutez
cdk bootstrap
sans spécifier d'options, le AWS compte et la AWS région par défaut sont utilisés. Vous pouvez également amorcer un environnement spécifique en spécifiant un profil et une combinaison compte/région. Par exemple :cdk bootstrap --profile test 123456789012/us-east-1
-
Demandez-leur d' AWS CDK exécuter le modèle de AWS CloudFormation pile pour déployer la pile. Pour ce faire, à partir du répertoire à la racine du projet, exécutez la commande
cdk
avec l'actiondeploy
, et le nom de la pile.cdk deploy HelloCdkStack
En cas de réussite, la sortie affiche que la pile
HelloCdkStack
a été déployée sans erreur.Note
Si le résultat affiche un message indiquant que la pile ne définit pas d'environnement et que les AWS informations d'identification n'ont pas pu être obtenues à partir d'emplacements standard ou qu'aucune région n'a été configurée, assurez-vous que vos AWS informations d'identification sont correctement définies dans leIDE, puis réexécutez la
cdk deploy
commande. Pour de plus amples informations, veuillez consulter Téléphoner Services AWS depuis un environnement dans AWS Cloud9. -
Pour confirmer que le SNS sujet Amazon et la SQS file d'attente Amazon ont été correctement déployés, envoyez un message au sujet, puis vérifiez le message reçu dans la file d'attente. Pour ce faire, vous pouvez utiliser un outil tel que le AWS Command Line Interface (AWS CLI) ou le AWS CloudShell. Pour plus d'informations sur ces outils, consultez AWS CLI et tutoriel aws-shell pour AWS Cloud9.
Par exemple, pour envoyer un message au sujet, alors que la session du terminal est toujours ouverte dans leIDE, utilisez la commande AWS CLI pour exécuter la SNS
publish
commande Amazon, en fournissant l'objet et le corps du message, la AWS région du sujet et le nom de la ressource Amazon du sujet (ARN).aws sns publish --subject "Hello from the AWS CDK" --message "This is a message from the AWS CDK." --topic-arn arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
Dans la commande précédente, remplacez
arn:aws:sns:us-east-2:123456789012:HelloCdkStack-HelloCdkTopic1A234567-8BCD9EFGHIJ0K
par celui ARN qui AWS CloudFormation est affecté au sujet. Pour obtenir l'identifiant, vous pouvez exécuter la SNSlist-topics
commande Amazon.aws sns list-topics --output table --query 'Topics[*].TopicArn'
En cas de réussite, la sortie de la commande
publish
affiche la valeurMessageId
pour le message qui a été publié.Pour vérifier la présence du message reçu dans la file d'attente, exécutez la SQS
receive-message
commande Amazon en fournissant les informations de la file d'attenteURL.aws sqs receive-message --queue-url https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
Dans la commande précédente, remplacez
https://queue.amazonaws.com/123456789012/HelloCdkStack-HelloCdkQueue1A234567-8BCD9EFGHIJ0K
par ARN celui qui est affecté AWS CloudFormation à la file d'attente. Pour l'obtenirURL, vous pouvez exécuter la SQSlist-queues
commande Amazon.aws sqs list-queues --output table --query 'QueueUrls[*]'
En cas de réussite, la sortie de la commande
receive-message
affiche l'information pour le message qui a été reçu.
Étape 4 : Nettoyer
Pour éviter que votre AWS compte ne soit débité une fois que vous aurez fini d'utiliser cet exemple, vous devez supprimer la AWS CloudFormation pile. Cela supprime le SNS sujet Amazon et la SQS file d'attente Amazon. Vous devez également supprimer l'environnement.
Étape 4.1 : supprimer la pile
La session du terminal étant toujours ouverte dans le IDE répertoire racine du projet, exécutez la cdk
commande avec l'destroy
action et le nom de la pile.
cdk destroy HelloCdkStack
Lorsque vous êtes invité à supprimer la pile, tapez y
, puis appuyez sur Enter
.
En cas de réussite, la sortie affiche que la pile HelloCdkStack
a été supprimée sans erreur.
Étape 4.2 : Supprimer l'environnement
Pour supprimer l'environnement, consultez Suppression d'un environnement dans AWS Cloud9.