Salta ai contenuti

Guida di Avvio Rapido

Questa guida ti illustra le basi per installare e utilizzare @aws/nx-plugin per costruire rapidamente progetti su AWS.

Le seguenti dipendenze globali sono necessarie prima di procedere:

  • Git
  • Node >= 22 (Consigliamo l’uso di strumenti come NVM per gestire le versioni di Node)
    • verifica con node --version
  • PNPM >= 10 (puoi usare anche Yarn >= 4, Bun >= 1 o NPM >= 10 se preferisci)
    • verifica con pnpm --version, yarn --version, bun --version o npm --version
  • UV >= 0.5.29
    1. installa Python 3.12 eseguendo: uv python install 3.12.0
    2. verifica con uv python list --only-installed
  • Credenziali AWS configurate per il tuo account AWS di destinazione (dove verrà distribuita l’applicazione)

Esegui il seguente comando per creare un workspace Nx con il package manager preferito:

Terminal window
npx create-nx-workspace@~21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip

Al termine, accedi alla directory del progetto:

Terminal window
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.

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - ts#trpc-api
  5. Compila i parametri richiesti
    • name: demo-api
    • auth: IAM
  6. Clicca su Generate

Questo creerà l’API nella cartella packages/demo-api.

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - ts#react-website
  5. Compila i parametri richiesti
    • name: demo-website
  6. Clicca su Generate

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

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - ts#react-website#auth
  5. Compila i parametri richiesti
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. Clicca su Generate

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

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - api-connection
  5. Compila i parametri richiesti
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. Clicca su Generate

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

  1. Installa il Nx Console VSCode Plugin se non l'hai già fatto
  2. Apri la console Nx in VSCode
  3. Clicca su Generate (UI) nella sezione "Common Nx Commands"
  4. Cerca @aws/nx-plugin - ts#infra
  5. Compila i parametri richiesti
    • name: infra
  6. Clicca su Generate

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

Utilizza il seguente comando per avviare i server di sviluppo locali per il sito e le API collegate:

Terminal window
pnpm 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.

Esegui il seguente comando per compilare il progetto:

Terminal window
pnpm nx run-many --target build --all

Esegui il seguente comando per distribuire il progetto:

Terminal window
pnpm 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”
  1. Recupera il file runtime-config.json:

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

    Terminal window
    pnpm 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!