Skip to content

クイックスタートガイド

このガイドでは、@aws/nx-plugin をインストールして使用し、AWS 上でプロジェクトを迅速に構築するための基本を説明します。

続行する前に、以下のグローバル依存関係が必要です:

  • Git
  • Node >= 22 (NVM のようなツールを使用してノードバージョンを管理することをお勧めします)
    • node --version を実行して確認してください
  • UV >= 0.5.29
    1. uv python install 3.14.0 を実行して Python 3.14 をインストールします
    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 インフラストラクチャを追加します。構築するプロジェクトのタイプに応じて、ジェネレーターの任意の組み合わせを選択して、プロジェクトを迅速にブートストラップできます。オプションの完全なリストについては、左側のナビゲーションバーの Generators を確認するか、グラフビルダーを試して、ワークスペースを視覚的に構築してください。

ショートカットとして、以下のボタンを使用して、完全なアプリケーションをスキャフォールドするコマンドをコピーできます。

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

これにより、ウェブサイトに Cognito 認証を追加するために必要なインフラストラクチャと React コードが設定されます。

フロントエンドとバックエンドを接続する

Section titled “フロントエンドとバックエンドを接続する”
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 を呼び出せるようにするために必要なプロバイダーが設定されます。

インフラストラクチャを追加する

Section titled “インフラストラクチャを追加する”

選択した 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

これにより、AWS にインフラストラクチャをデプロイするために使用できる CDK アプリが設定されます。

ステップ 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 です。

インフラストラクチャをビルドしてデプロイする

Section titled “インフラストラクチャをビルドしてデプロイする”

次に、以下のコマンドを実行してプロジェクトをビルドします:

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 を使用してフルスタックアプリケーションを正常に構築およびデプロイしました!