Aller au contenu

Guide de démarrage rapide

Ce guide vous présente les bases de l’installation et de l’utilisation de @aws/nx-plugin pour créer rapidement des projets sur AWS.

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

  • Git
  • Node >= 22 (Nous recommandons d’utiliser quelque chose comme NVM pour gérer vos versions de node)
    • vérifiez en exécutant node --version
  • UV >= 0.5.29
    1. installez Python 3.14 en exécutant : uv python install 3.14.0
    2. vérifiez avec uv python list --only-installed

É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
pnpm create @aws/nx-workspace my-project

Une fois terminé, naviguez vers le 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 »

Nous allons ajouter une API tRPC, un site web React, une authentification Cognito et une infrastructure CDK ou Terraform dans ce guide de démarrage rapide. Selon le type de projet que vous construisez, vous pouvez choisir n’importe quelle combinaison de générateurs pour démarrer rapidement votre projet. Consultez les Générateurs dans la barre de navigation à gauche pour voir la liste complète des options, ou essayez le constructeur de graphe pour construire votre espace de travail visuellement.

Comme raccourci, vous pouvez utiliser le bouton ci-dessous pour copier les commandes permettant de structurer l’application complète.

Loading the diagram…

Sinon, suivez les étapes ci-dessous pour exécuter chaque générateur vous-même.

Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive --dry-run

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

Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive --dry-run

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

Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive --dry-run

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

Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive --dry-run

Cela configure les fournisseurs nécessaires pour garantir que votre site web peut appeler votre API tRPC.

Ajoutez le projet d’infrastructure en fonction de votre fournisseur IAC choisi.

Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive
Vous pouvez également effectuer une simulation pour voir quels fichiers seraient modifiés
Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive --dry-run

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

Étape 3 : Exécuter votre site web et votre API localement

Section intitulée « Étape 3 : Exécuter votre site web et votre API localement »

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

Terminal window
pnpm dev

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

Les modifications apportées à votre site web et à votre API seront reflétées en temps réel, car les serveurs locaux du site web et de l’API se rechargeront automatiquement.

É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 { Stack, StackProps } from 'aws-cdk-lib';
import { DemoApi, DemoWebsite, UserIdentity } from '@my-project/common-constructs';
import { Construct } from 'constructs';
export class ApplicationStack extends Stack {
constructor(scope: Construct, id: string, props?: 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 CDK dont nous avons besoin pour déployer notre application full-stack.

Ensuite, exécutez la commande suivante pour construire votre projet :

Terminal window
pnpm build

Initialisez votre infrastructure :

Terminal window
pnpm nx bootstrap infra

Déployez votre projet :

Terminal window
pnpm nx deploy-sandbox infra

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

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

    Terminal window
    pnpm nx load-runtime-config demo-website
  2. Démarrez le serveur de site web local

    Terminal window
    pnpm nx serve demo-website

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


Félicitations ! 🎉 Vous avez réussi à construire et déployer une application full-stack en utilisant @aws/nx-plugin !