Skip to content

Latest commit

 

History

History
75 lines (52 loc) · 4.72 KB

1-PREMIERS-PAS.md

File metadata and controls

75 lines (52 loc) · 4.72 KB

Compétences illustrées : construire une application organisée en couches, développer la partie front-end d'une application, préparer et exécuter le déploiement d'une application

AWS CDK - Introduction

Pour mettre en oeuvre ses infrastructures Cloud, AWS propose le service CloudFormation. Il permet de composer des fichiers de configuration d'infrastructures et d'automatiser leur déploiement.
Le CDK génère ces fichiers de configuration en les programmant avec des classes et des outils de ligne de commandes pour automatiser tout ça. Le CDK est disponible dans de nombreux langages, agnostique sur le CLI, nous choisirons la version en Typescript pour notre découverte.

La partie découverte s'appuie sur le tutoriel de démarrage d'AWS. Vous pouvez vous y référer si vous le souhaitez. Nous allons le reprendre, apporter quelques commentaires et debogages.

Technologies

Nous aurons besoin de plusieurs technologies. Deux vont être nécessaires, AWS et le CDK pour manipuler les fichiers et les projets, d'autres pour mettre en oeuvre les technologies.

AWS : permet de gérer plein de trucs dont la connextion

Pour l'installation, vous pouvez essayer cette commande :

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

Pour plus d'infos. Vous pouvez tester l'installation avec la commande : aws --version, aws étant la commande de base de la technologie.

CDK : les commandes de conception

Les commandes du CDK permettent de créer un projet, le déployer ou le détruire. Pour des infos générales...

Il s'installe comme ça :

npm install -g aws-cdk

Une fois installé, il faut envoyer vos fichiers de configuration dans le Cloud pour permettre les syncrhonisations. Vous avez besoin de votre identifiant personnel, facile à trouver sur la console ou avec cette commande : aws sts get-caller-identity
C'est parti pour le 'bootstrap' :

cdk bootstrap aws://VOTRE-NUMERO-DE-COMPTE/CODE-DE-LA-REGION

exemple : aws://123456789/eu-west-3 (le code de Paris sur le Cloud Amazon)

Voilà, c'est tout.Dans la suite du tuto il y a des petites bouses pas très sympas.

On peut créer une petite appli de démarrage en suivant la troisième étape du tuto avec quelques commentaires :

Les profiles et l'identification

  • vous pouvez ajouter un compte aws sur votre session. Il s'agit pour ça soit d'appliquer la commande aws configure ou d'éditer ce fichier sur votre poste : ~/.aws/credentials. L'édition du fichier permet d'ajouter plusieurs comptes :

[default] aws_access_key_id=VOTRE-CLE-ACCES aws_secret_access_key=LE-SECRET-EN-LIEN-AVEC-LA-CLE aws_default_region=CODE-REGION

[Default] est le compte par défaut, vous pouvez en ajouter d'autres en indiquant n'importe quel nom. On peut ensuite les appeler en ajoutant l'option --profile NomDeProfil

Considérations sur les versions

L'appel aux classes du CDK en utilisant le paquet par défaut 'aws-cdk-lib' pose des problèmes de versions si vous utilisez des librairies des services spécifiques installés par NPM (Dynamodb, lambda, EC2). Ce ne sont pas les mêmes versions. Si vous voulez utiliser la version ancienne (aws-cdk/core) pour utiliser NPM, il faut la remplacer dans vos codes par le 'core' du CDK comme suit : D'abord on l'installe :

npm install --save @aws-cdk/core

Puis

import * as cdk from 'aws-cdk-lib'

remplacé par

import * as cdk from '@aws-cdk/core'

Supprimez la ligne d'import du Construct. Utilisez ensuite celui du coeur du SDK : cdk.Construct dans le fichier du dossier lib. vous devriez avoir ce constructeur :

constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps)

Ca devrait rouler.

Sinon, dans les tutoriels que vous trouverez, remplacez les appels aux librairies NPM par celles déjà présentent dans la 'aws-cdk-lib', exemple :

import * as lambda from 'aws-cdk-lib/aws-lambda'

Gérer la stack

Déployez la stack avec :

cdk deploy Détruisez la avec : cdk destroy

Des commandes vous seront utiles pour connaître votre situation sur le déploiement de la stack en lien avec votre environnement :

cdk doctor

Pour regarder le fichier JSON pour CloudFormation. Bon, c'est abscons :

cdk synth

La liste des fonctions peut être trouvée ici.