跳转到内容

快速入门指南

本指南将引导您了解安装和使用 @aws/nx-plugin 在 AWS 上快速构建项目的基础知识。

在继续之前,需要以下全局依赖项:

  • Git
  • Node >= 22(我们建议使用类似 NVM 的工具来管理您的 node 版本)
    • 通过运行 node --version 来验证
  • UV >= 0.5.29
    1. 通过运行以下命令安装 Python 3.14:uv python install 3.14.0
    2. 使用 uv python list --only-installed 验证

步骤 1:初始化一个新的 Nx 工作空间

Section titled “步骤 1:初始化一个新的 Nx 工作空间”

运行以下命令,使用您选择的包管理器创建一个 Nx 工作空间

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

完成后,导航到项目目录:

Terminal window
cd my-project

步骤 2:使用生成器搭建您的项目

Section titled “步骤 2:使用生成器搭建您的项目”

在本快速入门指南中,我们将添加一个 tRPC API、React 网站、Cognito 身份验证以及 CDK 或 Terraform 基础设施。根据您正在构建的项目类型,您可以选择任意生成器组合来快速启动您的项目。查看左侧导航栏中的 生成器 以查看完整的选项列表,或尝试使用 图形构建器 以可视化方式构建您的工作空间。

作为快捷方式,您可以使用下面的按钮复制命令来搭建完整的应用程序。

Loading the diagram…

否则,请按照以下步骤自行运行每个生成器。

Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive
您还可以执行试运行以查看哪些文件会被更改
Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive --dry-run

这将在 packages/demo-api 文件夹中创建 API。

Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive
您还可以执行试运行以查看哪些文件会被更改
Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive --dry-run

这将在 packages/demo-website 中搭建一个新的 React 网站。

Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive
您还可以执行试运行以查看哪些文件会被更改
Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive --dry-run

这将设置必要的基础设施和 React 代码,以便为您的网站添加 Cognito 身份验证。

Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive
您还可以执行试运行以查看哪些文件会被更改
Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive --dry-run

这将配置必要的提供程序,以确保您的网站可以调用您的 tRPC API。

根据您选择的 IAC 提供商添加基础设施项目。

Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive
您还可以执行试运行以查看哪些文件会被更改
Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive --dry-run

这将配置一个 CDK 应用程序,您可以使用它在 AWS 上部署基础设施。

步骤 3:在本地运行您的网站和 API

Section titled “步骤 3:在本地运行您的网站和 API”

使用以下命令为您的网站及其连接的 API 启动本地开发服务器:

Terminal window
pnpm dev

您的网站将在 http://localhost:4200 上可用。

对网站和 API 的更改都将实时反映,因为本地网站和 API 服务器都将热重载。

步骤 4:定义云资源并部署到 AWS

Section titled “步骤 4:定义云资源并部署到 AWS”

打开 packages/infra/src/stacks/application-stack.ts 并添加以下代码:

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

这就是我们部署全栈应用程序所需编写的全部 CDK 代码。

接下来,运行以下命令来构建您的项目:

Terminal window
pnpm build

引导您的基础设施:

Terminal window
pnpm nx bootstrap infra

部署您的项目:

Terminal window
pnpm nx deploy-sandbox infra

步骤 5:使用已部署的云资源测试网站

Section titled “步骤 5:使用已部署的云资源测试网站”
  1. 获取 runtime-config.json 文件:

    Terminal window
    pnpm nx load-runtime-config demo-website
  2. 启动本地网站服务器

    Terminal window
    pnpm nx serve demo-website

您的网站将在 http://localhost:4200 上可用,并将指向您为 API 和身份验证部署的资源。


恭喜!🎉 您已成功使用 @aws/nx-plugin 构建并部署了一个全栈应用程序!