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.
Prérequis
Section intitulée « Prérequis »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
- vérifiez en exécutant
- UV >= 0.5.29
- installez Python 3.14 en exécutant :
uv python install 3.14 - vérifiez avec
uv python list --only-installed
- installez Python 3.14 en exécutant :
Recommandé
Section intitulée « Recommandé »- PNPM >= 11 (vous pouvez également utiliser Yarn >= 4, Bun >= 1, ou NPM >= 11 si vous préférez)
- vérifiez en exécutant
pnpm --version,yarn --version,bun --versionounpm --version
- vérifiez en exécutant
- AWS Credentials configurées pour votre compte AWS cible sont requises pour déployer votre application (ainsi que pour certains workflows de développement local).
- Docker ou Finch >= 1.6.0 est requis pour certains générateurs. Pour Docker, les multi-platform builds doivent être configurés ; Finch prend en charge les multi-platform builds nativement.
- Terraform >= 1.12 est requis si vous choisissez de l’utiliser pour l’infrastructure en tant que code au lieu de CDK
- vérifiez en exécutant
terraform --version
- vérifiez en exécutant
- Si vous utilisez VSCode, nous recommandons d’installer le Nx Console VSCode Plugin.
Étape 1 : Créer un espace de travail
Section intitulée « Étape 1 : Créer un espace de travail »Créez un espace de travail Nx avec le gestionnaire de paquets de votre choix, et ouvrez le répertoire qu’il crée :
Créez votre espace de travail@aws/nx-workspace
pnpm create @aws/nx-workspace my-project yarn create @aws/nx-workspace my-project npm create @aws/nx-workspace -- my-project bun create @aws/nx-workspace my-projectComposez votre commande3
Requis
cd my-projectVous êtes invité à choisir votre fournisseur d’infrastructure en tant que code, soit CDK soit Terraform.
Étape 2 : Construire votre application
Section intitulée « Étape 2 : Construire votre application »Nous allons construire une application full-stack : une API tRPC, un site web React, une authentification Cognito et une infrastructure CDK ou Terraform. Demandez à un assistant IA de la structurer pour vous, ou exécutez les générateurs vous-même — les deux approches aboutissent au même espace de travail.
Avec l’IA
Section intitulée « Avec l’IA »-
Ouvrez l’espace de travail dans votre assistant de codage IA.
Les nouveaux espaces de travail sont livrés avec le serveur MCP du plugin déjà configuré pour Kiro, Claude Code, Cursor, Gemini CLI, GitHub Copilot et OpenAI Codex, afin que votre assistant puisse rechercher les générateurs du plugin et les exécuter sans aucune configuration.
-
Demandez l’application :
Prompt Create a tRPC API called demo-api, and a React website called demo-website. Add Cognito authentication to the website, connect the website to the API, and add an infrastructure project called infra. Then instantiate the generated infrastructure components so the website and API deploy, granting authenticated users access to the API.
Votre assistant découvre les générateurs via le serveur MCP et les exécute, dans l’ordre requis par leurs dépendances. Examinez les modifications qu’il apporte, puis continuez à l’étape 3.
Avec la CLI
Section intitulée « Avec la CLI »Exécutez les générateurs qui structurent l’application. Utilisez le bouton ci-dessous pour les copier tous, ou exécutez chacun vous-même comme décrit sous le diagramme.
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.
Ajouter une API tRPC
Section intitulée « Ajouter une API tRPC »Exécuter ce générateur@aws/nx-plugin:ts#api
pnpm nx g @aws/nx-plugin:ts#api --no-interactive yarn nx g @aws/nx-plugin:ts#api --no-interactive npx nx g @aws/nx-plugin:ts#api --no-interactive bunx nx g @aws/nx-plugin:ts#api --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - ts#api - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape2
Requis
Cela créera l’API dans le dossier packages/demo-api.
Ajouter un site web React
Section intitulée « Ajouter un site web React »Exécuter ce générateur@aws/nx-plugin:ts#website
pnpm nx g @aws/nx-plugin:ts#website --no-interactive yarn nx g @aws/nx-plugin:ts#website --no-interactive npx nx g @aws/nx-plugin:ts#website --no-interactive bunx nx g @aws/nx-plugin:ts#website --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - ts#website - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape1
Requis
Cela génère un nouveau site web React dans packages/demo-website.
Ajouter l’authentification Cognito
Section intitulée « Ajouter l’authentification Cognito »Exécuter ce générateur@aws/nx-plugin:ts#website#auth
pnpm nx g @aws/nx-plugin:ts#website#auth --no-interactive yarn nx g @aws/nx-plugin:ts#website#auth --no-interactive npx nx g @aws/nx-plugin:ts#website#auth --no-interactive bunx nx g @aws/nx-plugin:ts#website#auth --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - ts#website#auth - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape1
Requis
Cela configure l’infrastructure nécessaire et le code React pour ajouter l’authentification Cognito à votre site web.
Connecter le frontend au backend
Section intitulée « Connecter le frontend au backend »Exécuter ce générateur@aws/nx-plugin:connection
pnpm nx g @aws/nx-plugin:connection --no-interactive yarn nx g @aws/nx-plugin:connection --no-interactive npx nx g @aws/nx-plugin:connection --no-interactive bunx nx g @aws/nx-plugin:connection --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - connection - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape2
Requis
Requis
Cela configure les fournisseurs nécessaires pour garantir que votre site web peut appeler votre API tRPC.
Ajouter l’infrastructure
Section intitulée « Ajouter l’infrastructure »Ajoutez le projet d’infrastructure en fonction de votre fournisseur IAC choisi.
Exécuter ce générateur@aws/nx-plugin:ts#infra
pnpm nx g @aws/nx-plugin:ts#infra --no-interactive yarn nx g @aws/nx-plugin:ts#infra --no-interactive npx nx g @aws/nx-plugin:ts#infra --no-interactive bunx nx g @aws/nx-plugin:ts#infra --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - ts#infra - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape1
Requis
Cela configure une application CDK que vous pouvez utiliser pour déployer votre infrastructure sur AWS.
Exécuter ce générateur@aws/nx-plugin:terraform#project
pnpm nx g @aws/nx-plugin:terraform#project --no-interactive yarn nx g @aws/nx-plugin:terraform#project --no-interactive npx nx g @aws/nx-plugin:terraform#project --no-interactive bunx nx g @aws/nx-plugin:terraform#project --no-interactive- Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
- Ouvrez la console Nx dans VSCode
- Cliquez sur
Generate (UI)dans la section "Common Nx Commands" - Recherchez
@aws/nx-plugin - terraform#project - Remplissez les paramètres requis
- Cliquez sur
Generate
Options de cette étape1
Requis
Cela configure un projet Terraform 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 :
pnpm devyarn devnpm run devbun devVotre 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.
Appeler votre API depuis votre site web
La connexion du site web à l’API a ajouté un hook useDemoApi, qui renvoie un proxy d’options tRPC : chaque procédure de votre API offre queryOptions et mutationOptions à transmettre à TanStack Query.
Mettez à jour packages/demo-website/src/routes/index.tsx pour appeler la procédure echo de l’API, en affichant un spinner pendant que la requête est en cours :
import { useQuery } from '@tanstack/react-query';import { createFileRoute } from '@tanstack/react-router';import { Spinner } from '../components/spinner';import { useDemoApi } from '../hooks/useDemoApi';
export const Route = createFileRoute('/')({ component: RouteComponent,});
function RouteComponent() { const trpc = useDemoApi(); const echo = useQuery( trpc.echo.queryOptions({ message: 'Hello from the API!' }), );
return ( <div className="text-center"> <header> <h1>Welcome</h1> <p>Welcome to your new React website!</p> </header> {echo.isLoading ? ( <Spinner /> ) : echo.error ? ( <p>Error: {echo.error.message}</p> ) : ( <p>{echo.data?.message}</p> )} </div> );}Enregistrez le fichier et la page se recharge avec le message que votre API a renvoyé. L’appel est sécurisé de bout en bout — renommez message dans packages/demo-api/src/schema/echo.ts et votre site web cesse de compiler jusqu’à ce que vous suiviez le changement.
Consultez le guide de connexion React vers tRPC pour les mutations, les abonnements, la gestion des erreurs et les mises à jour optimistes.
É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 { DemoApi, DemoWebsite, UserIdentity,} from '@my-project/common-constructs';import { Stack, StackProps } from 'aws-cdk-lib';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.
Ouvrez packages/infra/src/main.tf et ajoutez le code suivant :
# Deploy user identitymodule "user_identity" { source = "../../common/terraform/src/core/user-identity"}
# Shared asset bucket — stages Lambda deployment zips for every lambda / API modulemodule "asset_bucket" { source = "../../common/terraform/src/core/asset-bucket"}
# Deploy APImodule "demo_api" { source = "../../common/terraform/src/app/apis/demo-api"
asset_bucket_name = module.asset_bucket.bucket_name}
# Grant authenticated users access to invoke the APIresource "aws_iam_policy" "api_invoke_policy" { name = "DemoApiInvokePolicy" description = "Policy to allow authenticated users to invoke the API"
policy = jsonencode({ Version = "2012-10-17" Statement = [ { Effect = "Allow" Action = "execute-api:Invoke" Resource = "${module.demo_api.api_execution_arn}/*/*" } ] })}
resource "aws_iam_role_policy_attachment" "authenticated_api_access" { role = module.user_identity.authenticated_role_name policy_arn = aws_iam_policy.api_invoke_policy.arn}
# Deploy websiteprovider "aws" { alias = "us_east_1" region = "us-east-1"}
module "demo_website" { source = "../../common/terraform/src/app/static-websites/demo-website"
providers = { aws.us_east_1 = aws.us_east_1 }
depends_on = [module.user_identity, module.demo_api]}
# Print the website URL and user pool id when the deployment finishesoutput "website_url" { value = module.demo_website.website_url}
output "user_pool_id" { value = module.user_identity.user_pool_id}C’est tout le Terraform dont nous avons besoin pour déployer notre application full-stack.
Construire et déployer l’infrastructure
Section intitulée « Construire et déployer l’infrastructure »Ensuite, exécutez la commande suivante pour construire votre projet :
pnpm buildyarn buildnpm run buildbun buildInitialisez votre infrastructure :
pnpm nx bootstrap infrayarn nx bootstrap infranpx nx bootstrap infrabunx nx bootstrap infrapnpm nx bootstrap infrayarn nx bootstrap infranpx nx bootstrap infrabunx nx bootstrap infraDéployez votre projet :
pnpm nx deploy-sandbox infrayarn nx deploy-sandbox infranpx nx deploy-sandbox infrabunx nx deploy-sandbox infrapnpm nx apply infrayarn nx apply infranpx nx apply infrabunx nx apply 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 »-
Récupérez le fichier
runtime-config.json:Terminal window pnpm nx load-runtime-config demo-websiteTerminal window yarn nx load-runtime-config demo-websiteTerminal window npx nx load-runtime-config demo-websiteTerminal window bunx nx load-runtime-config demo-website -
Démarrez le serveur de site web local
Terminal window pnpm nx serve demo-websiteTerminal window yarn nx serve demo-websiteTerminal window npx nx serve demo-websiteTerminal window bunx 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.
Pour vous connecter, vous devrez créer un utilisateur dans le pool d’utilisateurs Cognito.
Créer un utilisateur avec l'AWS CLI
La commande suivante crée un utilisateur dans un pool d’utilisateurs. Vous pouvez trouver l’identifiant du pool d’utilisateurs dans vos sorties de déploiement, ou dans la console Amazon Cognito. Remplacez les valeurs pour le nom d’utilisateur, l’e-mail, le prénom et le nom de famille, et le mot de passe temporaire.
aws cognito-idp admin-create-user \ --user-pool-id <user pool id> \ --username <username> \ --user-attributes Name=email,Value=<email> Name=email_verified,Value=true Name=given_name,Value=<first name> Name=family_name,Value=<last name> \ --temporary-password '<temporary password>' \ --message-action SUPPRESSLa première fois que vous vous connectez en tant que cet utilisateur, vous êtes invité à choisir un nouveau mot de passe, puis à configurer l’authentification multifacteur avec soit un code envoyé par SMS, soit un mot de passe à usage unique basé sur le temps provenant d’une application d’authentification.
Votre site web est également servi depuis CloudFront. Ouvrez le nom de domaine de sa distribution (qui est affiché dans votre terminal après le déploiement) pour utiliser la version fonctionnant entièrement sur AWS.
Félicitations ! 🎉 Vous avez réussi à construire et déployer une application full-stack en utilisant @aws/nx-plugin !
Étape 6 : Nettoyer
Section intitulée « Étape 6 : Nettoyer »Lorsque vous avez terminé, supprimez les ressources que vous avez déployées pour éviter les coûts continus :
pnpm nx destroy-sandbox infrayarn nx destroy-sandbox infranpx nx destroy-sandbox infrabunx nx destroy-sandbox infrapnpm nx destroy infrayarn nx destroy infranpx nx destroy infrabunx nx destroy infraPour supprimer les ressources de bootstrap, suivez les instructions ci-dessous :
Supprimez la stack de bootstrap dans chaque région que vous avez initialisée, y compris us-east-1. Cela supprime les rôles de bootstrap et le référentiel d’images de conteneur :
aws cloudformation delete-stack --stack-name CDKToolkit --region <region>pnpm nx bootstrap-destroy infrayarn nx bootstrap-destroy infranpx nx bootstrap-destroy infrabunx nx bootstrap-destroy infraProchaines étapes
Section intitulée « Prochaines étapes »- Dungeon Adventure Tutorial — construisez un jeu d’aventure de donjon IA full-stack, pour une présentation plus approfondie que ce guide.
- Workspaces — comment votre espace de travail est organisé, et la configuration que les générateurs partagent.
- Add to an Existing Project — adoptez le plugin dans votre base de code existante.