Pular para o conteúdo

Guia de Início Rápido

Este guia orienta você através dos fundamentos de instalação e uso do @aws/nx-plugin para construir projetos rapidamente na AWS.

As seguintes dependências globais são necessárias antes de prosseguir:

  • Git
  • Node >= 22 (Recomendamos usar algo como NVM para gerenciar suas versões do Node)
    • verifique executando node --version
  • PNPM >= 10 (você também pode usar Yarn >= 4, Bun >= 1 ou NPM >= 10 se preferir)
    • verifique executando pnpm --version, yarn --version, bun --version ou npm --version
  • UV >= 0.5.29
    1. instale o Python 3.12 executando: uv python install 3.12.0
    2. verifique com uv python list --only-installed
  • AWS Credentials configuradas para sua conta AWS de destino (onde sua aplicação será implantada)
  • Docker é necessário para alguns geradores.
  • Terraform >= 1.12 é necessário se você optar por usar isso para infraestrutura como código em vez do CDK
    • verifique executando terraform --version
  • Se você usa VSCode, recomendamos instalar o Nx Console VSCode Plugin.

Execute o seguinte comando para criar um workspace Nx com o gerenciador de pacotes de sua preferência:

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

Após a conclusão, navegue até o diretório do projeto:

Terminal window
cd my-project

Passo 2: Usar Geradores para Estruturar seu Projeto

Seção intitulada “Passo 2: Usar Geradores para Estruturar seu Projeto”

Neste guia rápido, adicionaremos uma API tRPC, Website React, Autenticação Cognito e Infraestrutura CDK ou Terraform. 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.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - ts#trpc-api
  5. Preencha os parâmetros obrigatórios
    • name: demo-api
    • auth: IAM
  6. Clique em Generate

Isso criará a API na pasta packages/demo-api.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - ts#react-website
  5. Preencha os parâmetros obrigatórios
    • name: demo-website
  6. Clique em Generate

Isso estruturará um novo website React em packages/demo-website.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - ts#react-website#auth
  5. Preencha os parâmetros obrigatórios
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. Clique em Generate

Isso configurará a infraestrutura necessária e o código React para adicionar Autenticação Cognito ao seu website.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - connection
  5. Preencha os parâmetros obrigatórios
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. Clique em Generate

Isso configurará os provedores necessários para garantir que seu website possa chamar sua API tRPC.

Adicione o projeto de infraestrutura baseado no seu provedor IaC escolhido.

  1. Instale o Nx Console VSCode Plugin se ainda não o fez
  2. Abra o console Nx no VSCode
  3. Clique em Generate (UI) na seção "Common Nx Commands"
  4. Procure por @aws/nx-plugin - ts#infra
  5. Preencha os parâmetros obrigatórios
    • name: infra
  6. Clique em Generate

Isso configura uma Aplicação CDK que você pode usar para implantar sua infraestrutura na AWS.

Use o seguinte comando para iniciar servidores locais de desenvolvimento para seu website e APIs conectadas:

Terminal window
pnpm nx run demo-website:serve-local

Seu website estará disponível em http://localhost:4200.

Alterações no website e 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.

Em seguida, execute o seguinte comando para construir seu projeto:

Terminal window
pnpm build

Inicialize sua infraestrutura:

Terminal window
pnpm nx run infra:bootstrap

Implante seu projeto:

Terminal window
pnpm nx run infra:deploy "my-project-sandbox/*"

Passo 5: Testar o Website com Recursos Cloud Implantados

Seção intitulada “Passo 5: Testar o Website com Recursos Cloud Implantados”
  1. Obtenha o arquivo runtime-config.json:

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. Inicie o servidor local do website

    Terminal window
    pnpm nx run demo-website:serve

Seu website estará disponível em http://localhost:4200 e apontará para os recursos implantados da API e autenticação.


Parabéns! 🎉 Você construiu e implantou com sucesso uma aplicação full-stack usando @aws/nx-plugin!