Guida di Avvio Rapido
Questa guida ti illustra le basi per installare e utilizzare @aws/nx-plugin
per costruire rapidamente progetti su AWS.
Prerequisiti
Sezione intitolata “Prerequisiti”Le seguenti dipendenze globali sono necessarie prima di procedere:
Obbligatori
Sezione intitolata “Obbligatori”- Git
- Node >= 22 (Consigliamo l’uso di strumenti come NVM per gestire le versioni di Node)
- verifica con
node --version
- verifica con
- PNPM >= 10 (puoi usare anche Yarn >= 4, Bun >= 1 o NPM >= 10 se preferisci)
- verifica con
pnpm --version
,yarn --version
,bun --version
onpm --version
- verifica con
- UV >= 0.5.29
- installa Python 3.12 eseguendo:
uv python install 3.12.0
- verifica con
uv python list --only-installed
- installa Python 3.12 eseguendo:
- Credenziali AWS configurate per il tuo account AWS di destinazione (dove verrà distribuita l’applicazione)
Consigliati
Sezione intitolata “Consigliati”- Docker è necessario per alcuni generatori
- Terraform >= 1.12 è richiesto se scegli di usarlo per l’infrastructure as code invece di CDK
- verifica con
terraform --version
- verifica con
- Se usi VSCode, consigliamo di installare il Nx Console VSCode Plugin
Step 1: Inizializzare un nuovo workspace Nx
Sezione intitolata “Step 1: Inizializzare un nuovo workspace Nx”Esegui il seguente comando per creare un workspace Nx con il package manager preferito:
npx create-nx-workspace@~21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.4.1 my-project --pm=yarn --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.4.1 my-project --pm=npm --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.4.1 my-project --pm=bun --preset=@aws/nx-plugin --ci=skip
Al termine, accedi alla directory del progetto:
cd my-project
Step 2: Utilizzare i generatori per impostare il progetto
Sezione intitolata “Step 2: Utilizzare i generatori per impostare il progetto”In questa guida rapida aggiungeremo un’API tRPC, un sito React, autenticazione Cognito e infrastruttura CDK. A seconda del tipo di progetto, puoi scegliere qualsiasi combinazione di generatori per configurare rapidamente il tuo progetto. Consulta le Guide nella barra di navigazione a sinistra per l’elenco completo delle opzioni.
Aggiungere un’API tRPC
Sezione intitolata “Aggiungere un’API tRPC”- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#trpc-api
- Compila i parametri richiesti
- name: demo-api
- auth: IAM
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM
yarn nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM
npx nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM
bunx nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM --dry-run
yarn nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM --dry-run
npx nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM --dry-run
bunx nx g @aws/nx-plugin:ts#trpc-api --name=demo-api --auth=IAM --dry-run
Questo creerà l’API nella cartella packages/demo-api
.
Aggiungere un sito React
Sezione intitolata “Aggiungere un sito React”- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#react-website
- Compila i parametri richiesti
- name: demo-website
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#react-website --name=demo-website
yarn nx g @aws/nx-plugin:ts#react-website --name=demo-website
npx nx g @aws/nx-plugin:ts#react-website --name=demo-website
bunx nx g @aws/nx-plugin:ts#react-website --name=demo-website
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#react-website --name=demo-website --dry-run
yarn nx g @aws/nx-plugin:ts#react-website --name=demo-website --dry-run
npx nx g @aws/nx-plugin:ts#react-website --name=demo-website --dry-run
bunx nx g @aws/nx-plugin:ts#react-website --name=demo-website --dry-run
Questo impalca un nuovo sito React in packages/demo-website
.
Aggiungere autenticazione Cognito
Sezione intitolata “Aggiungere autenticazione Cognito”- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#react-website#auth
- Compila i parametri richiesti
- project: @my-project/demo-website
- cognitoDomain: my-demo
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
yarn nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
npx nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
bunx nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
yarn nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
npx nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
bunx nx g @aws/nx-plugin:ts#react-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
Questo configura l’infrastruttura necessaria e il codice React per aggiungere l’autenticazione Cognito al tuo sito.
Collegare frontend e backend
Sezione intitolata “Collegare frontend e backend”- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - api-connection
- Compila i parametri richiesti
- sourceProject: @my-project/demo-website
- targetProject: @my-project/demo-api
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --dry-run
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --dry-run
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --dry-run
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --dry-run
Questo configura i provider necessari per garantire che il sito possa chiamare la tua API tRPC.
Aggiungere infrastruttura CDK
Sezione intitolata “Aggiungere infrastruttura CDK”- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)
nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#infra
- Compila i parametri richiesti
- name: infra
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#infra --name=infra
yarn nx g @aws/nx-plugin:ts#infra --name=infra
npx nx g @aws/nx-plugin:ts#infra --name=infra
bunx nx g @aws/nx-plugin:ts#infra --name=infra
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
yarn nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
npx nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
bunx nx g @aws/nx-plugin:ts#infra --name=infra --dry-run
Questo configura un’app CDK che puoi utilizzare per distribuire la tua infrastruttura su AWS.
Step 3: Eseguire il sito web e l’API in locale
Sezione intitolata “Step 3: Eseguire il sito web e l’API in locale”Utilizza il seguente comando per avviare i server di sviluppo locali per il sito e le API collegate:
pnpm nx run demo-website:serve-local
yarn nx run demo-website:serve-local
npx nx run demo-website:serve-local
bunx nx run demo-website:serve-local
Il tuo sito sarà disponibile all’indirizzo http://localhost:4200
.
Le modifiche al sito e all’API si rifletteranno in tempo reale grazie al hot-reload dei server locali.
Step 4: Definire le risorse cloud e distribuirle su AWS
Sezione intitolata “Step 4: Definire le risorse cloud e distribuirle su AWS”Apri packages/infra/src/stacks/application-stack.ts
e aggiungi il seguente codice:
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'); }}
Questo è tutto il codice CDK necessario per distribuire la nostra applicazione full-stack.
Compilare e distribuire l’infrastruttura
Sezione intitolata “Compilare e distribuire l’infrastruttura”Esegui il seguente comando per compilare il progetto:
pnpm nx run-many --target build --all
yarn nx run-many --target build --all
npx nx run-many --target build --all
bunx nx run-many --target build --all
Esegui il seguente comando per distribuire il progetto:
pnpm nx run infra:deploy my-project-sandbox/*
yarn nx run infra:deploy my-project-sandbox/*
npx nx run infra:deploy my-project-sandbox/*
bunx nx run infra:deploy my-project-sandbox/*
Step 5: Testare il sito web con le risorse cloud distribuite
Sezione intitolata “Step 5: Testare il sito web con le risorse cloud distribuite”-
Recupera il file
runtime-config.json
:Terminal window pnpm nx run demo-website:load:runtime-configTerminal window yarn nx run demo-website:load:runtime-configTerminal window npx nx run demo-website:load:runtime-configTerminal window bunx nx run demo-website:load:runtime-config -
Avvia il server locale del sito
Terminal window pnpm nx run demo-website:serveTerminal window yarn nx run demo-website:serveTerminal window npx nx run demo-website:serveTerminal window bunx nx run demo-website:serve
Il sito sarà disponibile all’indirizzo http://localhost:4200
e punterà alle risorse distribuite per l’API e l’autenticazione.
Complimenti! 🎉 Hai distribuito con successo un’applicazione full-stack utilizzando @aws/nx-plugin
!