Guida di Avvio Rapido
Questa guida ti accompagna attraverso le basi dell’installazione e dell’utilizzo di @aws/nx-plugin
per costruire rapidamente progetti su AWS.
Prerequisiti
Le seguenti dipendenze globali sono necessarie prima di procedere:
- Git
- Node >= 22 (Consigliamo di utilizzare strumenti come NVM per gestire le versioni di Node)
- verifica eseguendo
node --version
- verifica eseguendo
- PNPM >= 10 (puoi usare anche Yarn >= 4, Bun >= 1 o NPM >= 10 se preferisci)
- verifica eseguendo
pnpm --version
,yarn --version
,bun --version
onpm --version
- verifica eseguendo
- 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 la tua applicazione)
- Se utilizzi VSCode, consigliamo di installare il Nx Console VSCode Plugin.
Passaggio 1: Inizializzare una nuova workspace Nx
Esegui il seguente comando per creare una workspace Nx con il package manager preferito:
npx create-nx-workspace@~20.6.3 my-project --pm=pnpm --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=yarn --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=npm --preset=ts --ci=skip --formatter=prettier
npx create-nx-workspace@~20.6.3 my-project --pm=bun --preset=ts --ci=skip --formatter=prettier
Al termine, accedi alla directory del progetto:
cd my-project
Passaggio 2: Aggiungere il plugin Nx per AWS
Installa il plugin con:
pnpm add -Dw @aws/nx-plugin
yarn add -D @aws/nx-plugin
npm install --legacy-peer-deps -D @aws/nx-plugin
bun install -D @aws/nx-plugin
Passaggio 3: Utilizzare i generatori per impostare il progetto
In questa guida rapida aggiungeremo un’API tRPC, un sito React, l’autenticazione Cognito e un’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 vedere l’elenco completo delle opzioni.
Aggiungi 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
- apiName: demo-api
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
yarn nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
npx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
bunx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
yarn nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
npx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
bunx nx g @aws/nx-plugin:ts#trpc-api --apiName=demo-api --dry-run
Questo creerà l’API all’interno della cartella packages/demo-api
.
Aggiungi 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#cloudscape-website
- Compila i parametri richiesti
- name: demo-website
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
yarn nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
npx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
bunx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
yarn nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
npx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
bunx nx g @aws/nx-plugin:ts#cloudscape-website --name=demo-website --dry-run
Questo impalcaggio crea un nuovo sito React in packages/demo-website
.
Aggiungi l’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#cloudscape-website#auth
- Compila i parametri richiesti
- project: @my-project/demo-website
- cognitoDomain: my-demo
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo
bunx nx g @aws/nx-plugin:ts#cloudscape-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#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --dry-run
bunx nx g @aws/nx-plugin:ts#cloudscape-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.
Collega il frontend al 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-backend
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend
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-backend --dry-run
yarn nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
npx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
bunx nx g @aws/nx-plugin:api-connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api-backend --dry-run
Questo configura i provider necessari per garantire che il tuo sito possa chiamare la tua API tRPC.
Aggiungi un’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.
Passaggio 4: Definisci le risorse cloud e distribuisci 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'); api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website'); }}
Questo è tutto il codice CDK necessario per distribuire la nostra applicazione full-stack.
Compila e distribuisci l’infrastruttura
Successivamente, esegui questo 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
Passaggio 5: Esegui il frontend localmente
-
Recupera il file
runtime-config.json
:Terminal window pnpm nx run @demo/demo-website:load:runtime-configTerminal window yarn nx run @demo/demo-website:load:runtime-configTerminal window npx nx run @demo/demo-website:load:runtime-configTerminal window bunx nx run @demo/demo-website:load:runtime-config -
Avvia il server locale del sito
Terminal window pnpm nx run @demo/demo-website:serveTerminal window yarn nx run @demo/demo-website:serveTerminal window npx nx run @demo/demo-website:serveTerminal window bunx nx run @demo/demo-website:serve
Il tuo sito sarà disponibile all’indirizzo http://localhost:4200
.
Congratulazioni! 🎉 Hai distribuito con successo un’applicazione full-stack utilizzando @aws/nx-plugin
!