AWS CDK tutoriel pour AWS Cloud9 - AWS Cloud9

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, Amazon SNS Pricing et Amazon SQS Pricing.

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.

  1. Node Version Manager, ou nvm , que vous utilisez pour installer Node.js ultérieurement.

  2. 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.

  3. TypeScript, qui est requis par cet exemple. (Il prend AWS CDK également en charge plusieurs autres langages de programmation.)

  4. Le AWS CDK.

Étape 1.1 : Installer le Gestionnaire de version de nœud (nvm)

  1. 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) ou apt 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
  2. Vérifiez si nvm est déjà installé. Pour ce faire, exécutez la commande nvm 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..

  3. 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 de nvm ici.

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  4. Commencez à utiliser nvm . Vous pouvez fermer la session de terminal et la redémarrer, ou approvisionner le fichier ~/.bashrc qui contient les commandes pour charger nvm .

    . ~/.bashrc

Étape 1.2 : Installer Node.js.

  1. 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 nodecommande avec l'--versionoption.

    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.

  2. Installez Node.js 16 en exécutant la nvmcommande avec l'installaction.

    Note

    Vous pouvez également exécuter nvm install nodepour installer la version support à long terme (LTS) de Node.js. AWS Cloud9 le support suit la LTS version de Node.js.

    nvm install v16
  3. Commencez à utiliser Node.js 16. Pour ce faire, exécutez la commande nvm avec l'action alias , 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'action use au lieu de l'action alias (par exemple, nvm use 16.17.0 ). Cependant, l'action use fait que cette version de Node.js s'exécute uniquement lorsque la session de terminal actuelle est en cours d'exécution.

  4. Pour confirmer que vous utilisez Node.js 16, réexécutez la node --versioncommande. Si la bonne version est installée, la sortie contient la version v16.

Étape 1.3 : Installation TypeScript

  1. 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'--versionoption.

    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.

  2. Installez TypeScript. Pour ce faire, exécutez la npmcommande avec l'installaction, l'-goption et le nom du TypeScript package. Cela s'installe TypeScript en tant que package global dans l'environnement.

    npm install -g typescript
  3. Confirmez qu' TypeScript il est installé. Pour ce faire, exécutez le TypeScript compilateur en ligne de commande avec l'--versionoption.

    tsc --version

    S'il TypeScript est installé, la sortie contient le numéro de TypeScript version.

Étape 1.4 : Installation du AWS CDK

  1. 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 cdkcommande avec l'--versionoption.

    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.

  2. Installez le AWS CDK en exécutant la npmcommande accompagnée de l'installaction, du nom du AWS CDK package à installer et de l'-goption permettant d'installer le package globalement dans l'environnement.

    npm install -g aws-cdk
  3. 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.

  1. 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.
  2. Configurez le répertoire en tant que projet de TypeScript langue pour AWS CDK. Pour ce faire, exécutez la commande cdk avec l'action init , le modèle sample-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 fichier hello-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 fichier hello-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 dont npm n'a pas besoin lorsqu'il crée le code.

    • Un fichier cdk.json, qui contient les informations pour exécuter la commande cdk plus facilement.

    • Un fichier package-lock.json, qui contient des informations que npm 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 commande npm 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 avec npmet le AWS CDK.

    • Un fichier tsconfig.json, qui contient les informations pour exécuter la commande tsc plus facilement et avec probablement moins d'erreurs de création et d'exécution.

  3. 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 classes StackApp,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.

  4. 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 fichier lib/hello-cdk-stack.ts.

  5. npmUtilisez-le pour exécuter le TypeScript compilateur afin de vérifier les erreurs de codage, puis d'activer le AWS CDK pour exécuter le bin/hello-cdk.js fichier du projet. Pour ce faire, dans le répertoire racine du projet, exécutez la commande npm avec l'action run , en spécifiant la valeur de la commande build dans le fichier package.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 et lib/hello-cdk-stack.d.ts des fichiers. Le compilateur transpile également les fichiers hello-cdk-stack.ts et hello-cdk.ts dans les fichiers hello-cdk-stack.js et hello-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.

  1. 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 cdkcommande avec l'synthaction 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.

  2. 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'action bootstrap.

    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
  3. 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'action deploy , 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 deploycommande. Pour de plus amples informations, veuillez consulter Téléphoner Services AWS depuis un environnement dans AWS Cloud9.

  4. 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 publishcommande 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 SNS list-topicscommande Amazon.

    aws sns list-topics --output table --query 'Topics[*].TopicArn'

    En cas de réussite, la sortie de la commande publish affiche la valeur MessageId 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-messagecommande 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 SQS list-queuescommande 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 cdkcommande avec l'destroyaction 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.