Skip to content

クイックスタートガイド

このガイドでは、@aws/nx-pluginを使用したAWSプロジェクトの迅速な構築方法について、インストールから基本的な使い方までを説明します。

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

  • Git
  • Node >= 22(Nodeバージョン管理にはNVMの使用を推奨)
    • 確認コマンド: node --version
  • PNPM >= 10(代替としてYarn >= 4Bun >= 1、またはNPM >= 10も使用可能)
    • 確認コマンド: pnpm --versionyarn --versionbun --version または npm --version
  • UV >= 0.5.29
    1. Python 3.12のインストール: uv python install 3.12.0
    2. 確認コマンド: uv python list --only-installed
  • ターゲットAWSアカウント(アプリケーションのデプロイ先)に設定されたAWS Credentials
  • VSCodeを使用する場合、Nx Console VSCode Pluginのインストールを推奨

ステップ1: 新しいNxワークスペースの初期化

Section titled “ステップ1: 新しいNxワークスペースの初期化”

次のコマンドを実行して、任意のパッケージマネージャーでNxワークスペースを作成します:

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

完了したら、プロジェクトディレクトリに移動します:

Terminal window
cd my-project

ステップ2: ジェネレータでプロジェクトをスキャフォールド

Section titled “ステップ2: ジェネレータでプロジェクトをスキャフォールド”

このクイックスタートでは、tRPC API・Reactウェブサイト・Cognito認証・CDKインフラを追加します。左側のナビゲーションバーにある__Guides__から、プロジェクトタイプに応じた任意のジェネレータの組み合わせを選択できます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#trpc-api
  5. 必須パラメータを入力
    • name: demo-api
    • auth: IAM
  6. クリック Generate

これによりpackages/demo-apiフォルダ内にAPIが作成されます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#react-website
  5. 必須パラメータを入力
    • name: demo-website
  6. クリック Generate

packages/demo-websiteに新しいReactウェブサイトがスキャフォールドされます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#react-website#auth
  5. 必須パラメータを入力
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. クリック Generate

ウェブサイトにCognito認証を追加するためのインフラとReactコードを設定します。

フロントエンドとバックエンドの接続

Section titled “フロントエンドとバックエンドの接続”
  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - api-connection
  5. 必須パラメータを入力
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. クリック Generate

ウェブサイトがtRPC APIを呼び出すために必要なプロバイダ設定を行います。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#infra
  5. 必須パラメータを入力
    • name: infra
  6. クリック Generate

AWSへのインフラデプロイ用CDKアプリを設定します。

ステップ3: ローカル環境でのウェブサイトとAPIの実行

Section titled “ステップ3: ローカル環境でのウェブサイトとAPIの実行”

次のコマンドで、ウェブサイトと接続されたAPIのローカル開発サーバーを起動します:

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

ウェブサイトはhttp://localhost:4200でアクセス可能です。

ウェブサイトとAPIへの変更は、両方のサーバーがホットリロードされるためリアルタイムで反映されます。

ステップ4: クラウドリソースの定義とAWSへのデプロイ

Section titled “ステップ4: クラウドリソースの定義とAWSへのデプロイ”

packages/infra/src/stacks/application-stack.tsを開き、次のコードを追加します:

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

これがフルスタックアプリケーションをデプロイするために必要なCDKコードの全体です。

次のコマンドでプロジェクトをビルドします:

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

デプロイコマンドを実行します:

Terminal window
pnpm nx run infra:deploy --all

ステップ5: デプロイ済みクラウドリソースとの連携テスト

Section titled “ステップ5: デプロイ済みクラウドリソースとの連携テスト”
  1. runtime-config.jsonファイルを取得:

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. ローカルウェブサイトサーバーを起動

    Terminal window
    pnpm nx run demo-website:serve

ウェブサイトはhttp://localhost:4200でアクセス可能になり、デプロイしたAPIと認証リソースと連携します。


おめでとうございます!🎉 @aws/nx-pluginを使ったフルスタックアプリケーションの構築とデプロイに成功しました!