Aller au contenu

Guide de Démarrage Rapide

Ce guide vous explique les bases de l’installation et de l’utilisation de @aws/nx-plugin pour développer rapidement des projets sur AWS.

Pour un tutoriel plus approfondi sur la création d’une application full-stack, consultez le Tutoriel de l’Aventure du Donjon.

Les dépendances globales suivantes sont nécessaires avant de continuer :

  • Git
  • Node >= 22 (Nous recommandons d’utiliser un gestionnaire comme NVM pour les versions de Node)
    • vérifiez avec node --version
  • PNPM >= 10 (vous pouvez aussi utiliser Yarn >= 4, Bun >= 1 ou NPM >= 10 si vous préférez)
    • vérifiez avec pnpm --version, yarn --version, bun --version ou npm --version
  • UV >= 0.5.29
    1. installez Python 3.12 en exécutant : uv python install 3.12.0
    2. vérifiez avec uv python list --only-installed
  • Identifiants AWS configurés pour votre compte AWS cible (où votre application sera déployée)

Étape 1 : Initialiser un nouvel espace de travail Nx

Section intitulée « Étape 1 : Initialiser un nouvel espace de travail Nx »

Exécutez la commande suivante pour créer un espace de travail Nx avec le gestionnaire de paquets de votre choix :

Terminal window
npx create-nx-workspace@21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip

Vous serez invité à choisir votre fournisseur d’infrastructure as code (IaC), soit CDK soit Terraform. Vous pouvez ignorer cette étape en ajoutant --iacProvider à la commande, par exemple :

Terminal window
npx create-nx-workspace@21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --iacProvider=CDK --ci=skip

Une fois terminé, accédez au répertoire du projet :

Fenêtre de terminal
cd my-project

Étape 2 : Utiliser les générateurs pour structurer votre projet

Section intitulée « Étape 2 : Utiliser les générateurs pour structurer votre projet »

Dans ce guide rapide, nous ajouterons une API tRPC, un site React, une authentification Cognito et une infrastructure CDK ou Terraform. Selon votre type de projet, vous pouvez choisir n’importe quelle combinaison de générateurs pour démarrer rapidement. Consultez les Guides dans la barre de navigation à gauche pour voir toutes les options disponibles.

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#trpc-api
  5. Remplissez les paramètres requis
    • name: demo-api
    • auth: IAM
  6. Cliquez sur Generate

Ceci créera l’API dans le dossier packages/demo-api.

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#react-website
  5. Remplissez les paramètres requis
    • name: demo-website
  6. Cliquez sur Generate

Ceci génère un nouveau site React dans packages/demo-website.

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#react-website#auth
  5. Remplissez les paramètres requis
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. Cliquez sur Generate

Ceci configure l’infrastructure nécessaire et le code React pour ajouter l’authentification Cognito à votre site.

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - api-connection
  5. Remplissez les paramètres requis
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. Cliquez sur Generate

Ceci configure les fournisseurs nécessaires pour permettre à votre site d’appeler votre API tRPC.

Ajoutez le projet d’infrastructure selon votre fournisseur IaC choisi.

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#infra
  5. Remplissez les paramètres requis
    • name: infra
  6. Cliquez sur Generate

Ceci configure une application CDK que vous pouvez utiliser pour déployer votre infrastructure sur AWS.

Utilisez la commande suivante pour démarrer les serveurs de développement locaux pour votre site et ses APIs connectées :

Terminal window
pnpm nx run demo-website:serve-local

Votre site sera disponible à l’adresse http://localhost:4200.

Les modifications apportées à votre site et à votre API seront reflétées en temps réel grâce au rechargement automatique des serveurs.

Étape 4 : Définir les ressources cloud et déployer sur AWS

Section intitulée « Étape 4 : Définir les ressources cloud et déployer sur AWS »

Ouvrez packages/infra/src/stacks/application-stack.ts et ajoutez le code suivant :

import * as cdk from 'aws-cdk-lib';
import { DemoApi, DemoWebsite, UserIdentity } from ':my-project/common-constructs';
import { Construct } from 'constructs';
export class ApplicationStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const identity = new UserIdentity(this, 'identity');
const api = new DemoApi(this, 'api', {
integrations: DemoApi.defaultIntegrations(this).build(),
});
api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website');
}
}

C’est tout le code CDK nécessaire pour déployer notre application full-stack.

Exécutez ensuite la commande suivante pour construire votre projet :

Terminal window
pnpm nx run-many --target build --all

Si vous rencontrez des erreurs de linting, vous pouvez exécuter cette commande pour les corriger automatiquement :

Terminal window
pnpm nx run-many --target lint --configuration=fix --all

Initialisez votre infrastructure :

Terminal window
pnpm nx run infra:bootstrap

Le bootstrapping CDK est requis à la fois pour votre région AWS cible et pour us-east-1 afin de permettre le déploiement du WebACL AWS WAF pour le site.

Déployez votre projet :

Terminal window
pnpm nx run infra:deploy my-project-sandbox/*

Étape 5 : Tester le site avec les ressources cloud déployées

Section intitulée « Étape 5 : Tester le site avec les ressources cloud déployées »
  1. Récupérez le fichier runtime-config.json :

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. Démarrez le serveur local du site

    Terminal window
    pnpm nx run demo-website:serve

Votre site sera disponible à l’adresse http://localhost:4200 et pointera vers les ressources déployées pour l’API et l’authentification.


Félicitations ! 🎉 Vous avez déployé avec succès une application full-stack en utilisant @aws/nx-plugin !