Salta ai contenuti

Guida Rapida

Questa guida ti accompagna attraverso le basi dell’installazione e dell’utilizzo di @aws/nx-plugin per costruire rapidamente progetti su AWS.

Le seguenti dipendenze globali sono necessarie prima di procedere:

  • Git
  • Node >= 22 (Consigliamo di utilizzare qualcosa come NVM per gestire le versioni di node)
    • verifica eseguendo node --version
  • UV >= 0.5.29
    1. installa Python 3.14 eseguendo: uv python install 3.14.0
    2. verifica con uv python list --only-installed

Esegui il seguente comando per creare un workspace Nx con il package manager di tua scelta:

Terminal window
pnpm create @aws/nx-workspace my-project

Una volta completato, naviga nella directory del progetto:

Terminal window
cd my-project

Passaggio 2: Utilizzare i Generatori per Strutturare il Progetto

Sezione intitolata “Passaggio 2: Utilizzare i Generatori per Strutturare il Progetto”

Aggiungeremo un’API tRPC, un sito web React, l’autenticazione Cognito e l’infrastruttura CDK o Terraform in questa guida rapida. A seconda del tipo di progetto che stai costruendo, puoi scegliere qualsiasi combinazione di generatori per avviare rapidamente il tuo progetto. Consulta i Generatori nella barra di navigazione a sinistra per vedere l’elenco completo delle opzioni, oppure prova il graph builder per costruire il tuo workspace visivamente.

Come scorciatoia, puoi utilizzare il pulsante qui sotto per copiare i comandi per strutturare l’applicazione completa.

Loading the diagram…

Altrimenti, segui i passaggi seguenti per eseguire ogni generatore da solo.

Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive --dry-run

Questo creerà l’API all’interno della cartella packages/demo-api.

Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive --dry-run

Questo crea un nuovo sito web React in packages/demo-website.

Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive --dry-run

Questo configura l’infrastruttura necessaria e il codice React per aggiungere l’autenticazione Cognito al tuo sito web.

Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive --dry-run

Questo configura i provider necessari per garantire che il tuo sito web possa chiamare la tua API tRPC.

Aggiungi il progetto di infrastruttura in base al tuo provider IAC scelto.

Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive --dry-run

Questo configura un’app CDK che puoi utilizzare per distribuire la tua infrastruttura su AWS.

Passaggio 3: Eseguire il Sito Web e l’API Localmente

Sezione intitolata “Passaggio 3: Eseguire il Sito Web e l’API Localmente”

Utilizza il seguente comando per avviare i server di sviluppo locali per il tuo sito web e le sue API connesse:

Terminal window
pnpm dev

Il tuo sito web sarà disponibile all’indirizzo http://localhost:4200.

Le modifiche sia al tuo sito web che all’API si rifletteranno in tempo reale poiché sia il sito web locale che i server API si ricaricheranno automaticamente.

Passaggio 4: Definire le Risorse Cloud e Distribuire su AWS

Sezione intitolata “Passaggio 4: Definire le Risorse Cloud e Distribuire su AWS”

Apri packages/infra/src/stacks/application-stack.ts e aggiungi il seguente codice:

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');
}
}

Questo è tutto il CDK che dobbiamo scrivere per distribuire la nostra applicazione full-stack.

Successivamente, esegui il seguente comando per costruire il tuo progetto:

Terminal window
pnpm build

Esegui il bootstrap della tua infrastruttura:

Terminal window
pnpm nx bootstrap infra

Distribuisci il tuo progetto:

Terminal window
pnpm nx deploy-sandbox infra

Passaggio 5: Testare il Sito Web con le Risorse Cloud Distribuite

Sezione intitolata “Passaggio 5: Testare il Sito Web con le Risorse Cloud Distribuite”
  1. Recupera il file runtime-config.json:

    Terminal window
    pnpm nx load-runtime-config demo-website
  2. Avvia il server del sito web locale

    Terminal window
    pnpm nx serve demo-website

Il tuo sito web sarà disponibile all’indirizzo http://localhost:4200 e punterà alle risorse che hai distribuito per l’API e l’autenticazione.


Congratulazioni! 🎉 Hai costruito e distribuito con successo un’applicazione full-stack utilizzando @aws/nx-plugin!