Guia de Início Rápido
Este guia explica o básico da instalação e uso do @aws/nx-plugin
para construir projetos rapidamente na AWS.
Pré-requisitos
Seção intitulada “Pré-requisitos”As seguintes dependências globais são necessárias antes de prosseguir:
- Git
- Node >= 22 (Recomendamos usar algo como NVM para gerenciar versões do Node)
- verifique executando
node --version
- verifique executando
- PNPM >= 10 (também pode usar Yarn >= 4, Bun >= 1 ou NPM >= 10 se preferir)
- verifique executando
pnpm --version
,yarn --version
,bun --version
ounpm --version
- verifique executando
- UV >= 0.5.29
- instale Python 3.12 executando:
uv python install 3.12.0
- verifique com
uv python list --only-installed
- instale Python 3.12 executando:
- Credenciais AWS configuradas para sua conta AWS de destino (onde seu aplicativo será implantado)
- Se estiver usando VSCode, recomendamos instalar o Nx Console VSCode Plugin.
Passo 1: Inicializar um Novo Workspace Nx
Seção intitulada “Passo 1: Inicializar um Novo Workspace Nx”Execute o seguinte comando para criar um workspace Nx com o gerenciador de pacotes de sua escolha:
npx create-nx-workspace@~21.0.3 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.0.3 my-project --pm=yarn --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.0.3 my-project --pm=npm --preset=@aws/nx-plugin --ci=skip
npx create-nx-workspace@~21.0.3 my-project --pm=bun --preset=@aws/nx-plugin --ci=skip
Após a conclusão, navegue até o diretório do projeto:
cd my-project
Passo 2: Usar Geradores para Estruturar seu Projeto
Seção intitulada “Passo 2: Usar Geradores para Estruturar seu Projeto”Vamos adicionar uma API tRPC, Site React, Autenticação Cognito e Infraestrutura CDK neste guia rápido. Dependendo do tipo de projeto que você está construindo, você pode escolher qualquer combinação de geradores para inicializar rapidamente seu projeto. Confira os Guias na barra de navegação à esquerda para ver a lista completa de opções.
Adicionar uma API tRPC
Seção intitulada “Adicionar uma API tRPC”- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#trpc-api
- Preencha os parâmetros obrigatórios
- name: demo-api
- auth: IAM
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Isso criará a API dentro da pasta packages/demo-api
.
Adicionar um Site React
Seção intitulada “Adicionar um Site React”- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#react-website
- Preencha os parâmetros obrigatórios
- name: demo-website
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Isso estrutura um novo site React em packages/demo-website
.
Adicionar Autenticação Cognito
Seção intitulada “Adicionar Autenticação Cognito”- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#react-website#auth
- Preencha os parâmetros obrigatórios
- project: @my-project/demo-website
- cognitoDomain: my-demo
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Isso configura a infraestrutura necessária e o código React para adicionar Autenticação Cognito ao seu site.
Conectar Frontend ao Backend
Seção intitulada “Conectar Frontend ao Backend”- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - api-connection
- Preencha os parâmetros obrigatórios
- sourceProject: @my-project/demo-website
- targetProject: @my-project/demo-api
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Isso configura os provedores necessários para garantir que seu site possa chamar sua API tRPC.
Adicionar Infraestrutura CDK
Seção intitulada “Adicionar Infraestrutura CDK”- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#infra
- Preencha os parâmetros obrigatórios
- name: infra
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Isso configura uma Aplicação CDK que você pode usar para implantar sua infraestrutura na AWS.
Passo 3: Executar seu Site e API Localmente
Seção intitulada “Passo 3: Executar seu Site e API Localmente”Use o seguinte comando para iniciar servidores locais de desenvolvimento para seu site e APIs conectadas:
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
Seu site estará disponível em http://localhost:4200
.
Alterações tanto no seu site quanto na API serão refletidas em tempo real, pois ambos os servidores locais recarregarão automaticamente.
Passo 4: Definir Recursos Cloud e Implantar na AWS
Seção intitulada “Passo 4: Definir Recursos Cloud e Implantar na AWS”Abra packages/infra/src/stacks/application-stack.ts
e adicione o seguinte código:
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'); }}
Este é todo o código CDK necessário para implantar nossa aplicação full-stack.
Construir e Implantar a Infraestrutura
Seção intitulada “Construir e Implantar a Infraestrutura”Em seguida, execute o seguinte comando para construir seu projeto:
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
Execute o seguinte comando para implantar seu projeto:
pnpm nx run infra:deploy --all
yarn nx run infra:deploy --all
npx nx run infra:deploy --all
bunx nx run infra:deploy --all
Passo 5: Testar o Site com Recursos Cloud Implantados
Seção intitulada “Passo 5: Testar o Site com Recursos Cloud Implantados”-
Obtenha o arquivo
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 -
Inicie o servidor local do site
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
Seu site estará disponível em http://localhost:4200
e apontará para os recursos implantados da API e autenticação.
Parabéns! 🎉 Você implantou com sucesso uma aplicação full-stack usando @aws/nx-plugin
!