Bỏ qua để đến nội dung

Hướng Dẫn Bắt Đầu Nhanh

Hướng dẫn này sẽ hướng dẫn bạn các bước cơ bản để cài đặt và sử dụng @aws/nx-plugin để xây dựng nhanh các dự án trên AWS.

Các phụ thuộc toàn cục sau là cần thiết trước khi tiếp tục:

  • Git
  • Node >= 22 (Chúng tôi khuyên bạn nên sử dụng công cụ như NVM để quản lý các phiên bản node)
    • xác minh bằng cách chạy node --version
  • PNPM >= 10 (bạn cũng có thể sử dụng Yarn >= 4, Bun >= 1, hoặc NPM >= 10 nếu bạn muốn)
    • xác minh bằng cách chạy pnpm --version, yarn --version, bun --version hoặc npm --version
  • UV >= 0.5.29
    1. cài đặt Python 3.12 bằng cách chạy: uv python install 3.12.0
    2. xác minh bằng uv python list --only-installed
  • AWS Credentials được cấu hình cho tài khoản AWS đích của bạn (nơi ứng dụng của bạn sẽ được triển khai)
  • Docker là bắt buộc đối với một số trình tạo.
  • Terraform >= 1.12 là bắt buộc nếu bạn chọn sử dụng công cụ này cho cơ sở hạ tầng dưới dạng mã thay vì CDK
    • xác minh bằng cách chạy terraform --version
  • Nếu bạn đang sử dụng VSCode, chúng tôi khuyến nghị cài đặt Nx Console VSCode Plugin.

Chạy lệnh sau để tạo một Nx workspace với trình quản lý gói mà bạn chọn:

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

Sau khi hoàn tất, điều hướng đến thư mục dự án:

Terminal window
cd my-project

Bước 2: Sử dụng Generators để Tạo khung Dự án

Phần tiêu đề “Bước 2: Sử dụng Generators để Tạo khung Dự án”

Chúng ta sẽ thêm một tRPC API, React Website, Cognito Authentication, và CDK hoặc Terraform Infrastructure trong hướng dẫn nhanh này. Tùy thuộc vào loại dự án bạn đang xây dựng, bạn có thể chọn bất kỳ tổ hợp nào của các generators để nhanh chóng khởi tạo dự án của mình. Xem phần Guides trong thanh điều hướng bên trái để xem danh sách đầy đủ các tùy chọn.

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - ts#trpc-api
  5. Fill in the required parameters
    • name: demo-api
    • auth: IAM
  6. Click Generate

Lệnh này sẽ tạo API bên trong thư mục packages/demo-api.

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - ts#react-website
  5. Fill in the required parameters
    • name: demo-website
  6. Click Generate

Lệnh này tạo khung một React website mới trong packages/demo-website.

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - ts#react-website#auth
  5. Fill in the required parameters
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. Click Generate

Lệnh này thiết lập cơ sở hạ tầng cần thiết và mã React để thêm Cognito Authentication vào website của bạn.

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - api-connection
  5. Fill in the required parameters
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. Click Generate

Lệnh này cấu hình các providers cần thiết để đảm bảo website của bạn có thể gọi tRPC API.

Thêm dự án infrastructure dựa trên nhà cung cấp IAC bạn đã chọn.

  1. Install the Nx Console VSCode Plugin if you haven't already
  2. Open the Nx Console in VSCode
  3. Click Generate (UI) in the "Common Nx Commands" section
  4. Search for @aws/nx-plugin - ts#infra
  5. Fill in the required parameters
    • name: infra
  6. Click Generate

Lệnh này cấu hình một CDK App mà bạn có thể sử dụng để triển khai cơ sở hạ tầng của mình trên AWS.

Bước 3: Chạy Website và API của bạn ở Local

Phần tiêu đề “Bước 3: Chạy Website và API của bạn ở Local”

Sử dụng lệnh sau để khởi động các dev server local cho website và các API được kết nối:

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

Website của bạn sẽ có sẵn tại http://localhost:4200.

Các thay đổi đối với cả website và API của bạn sẽ được phản ánh theo thời gian thực vì cả website local và API server đều sẽ hot-reload.

Bước 4: Định nghĩa Cloud Resources và Triển khai lên AWS

Phần tiêu đề “Bước 4: Định nghĩa Cloud Resources và Triển khai lên AWS”

Mở packages/infra/src/stacks/application-stack.ts và thêm đoạn mã sau:

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

Đây là tất cả CDK chúng ta cần viết để triển khai ứng dụng full stack của mình.

Tiếp theo, chạy lệnh sau để build dự án của bạn:

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

Bootstrap cơ sở hạ tầng của bạn:

Terminal window
pnpm nx run infra:bootstrap

Triển khai dự án của bạn:

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

Bước 5: Kiểm tra Website với Cloud Resources đã Triển khai

Phần tiêu đề “Bước 5: Kiểm tra Website với Cloud Resources đã Triển khai”
  1. Lấy tệp runtime-config.json:

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. Khởi động local website server

    Terminal window
    pnpm nx run demo-website:serve

Website của bạn sẽ có sẵn tại http://localhost:4200, và sẽ trỏ đến các tài nguyên bạn đã triển khai cho API và authentication.


Chúc mừng! 🎉 Bạn đã xây dựng và triển khai thành công một ứng dụng full-stack bằng cách sử dụng @aws/nx-plugin!