GenU チートシート ― よく使うコマンドと設定早見表
対象バージョン:v5.4.0 / 参照リポジトリ:aws-samples/generative-ai-use-cases
1. セットアップ
# リポジトリをクローン
git clone https://github.com/aws-samples/generative-ai-use-cases.git
cd generative-ai-use-cases
# 依存パッケージをインストール(全ワークスペース)
npm ci
# CDK Bootstrap(初回のみ・デプロイ先リージョンで実行)
npx -w packages/cdk cdk bootstrap
2. デプロイ
# 通常デプロイ(フルビルド)
npm run cdk:deploy
# クイックデプロイ(--hotswap --concurrency 3、開発中の変更反映に)
npm run cdk:deploy:quick
# スタックを指定してデプロイ
npx -w packages/cdk cdk deploy GenerativeAiUseCasesStack
# デプロイ後にスタック出力を確認
aws cloudformation describe-stacks \
--stack-name GenerativeAiUseCasesStack \
--query "Stacks[0].Outputs"
# リソースをすべて削除
npx -w packages/cdk cdk destroy --all
3. ローカル開発(フロントエンド)
# デプロイ済み環境の CloudFormation Output から .env.local を生成して開発サーバー起動
npm run web:devw
# 環境名を指定する場合(parameter.ts の envs キーを指定)
npm run web:devw -- --env dev
# ブラウザで確認
# http://localhost:5173
4. テスト・Lint
# フロントエンドのテスト(Vitest)
npm run web:test
# CDK スタックのテスト(Jest + スナップショット)
npm run cdk:test
# CDK スナップショットを更新
npm run cdk:test:update-snapshot
# Lint(全ワークスペース)
npm run lint
# 型チェック
npm run typecheck
5. 設定ファイルの場所と使い分け
| 設定方法 | ファイル | 用途 |
|---|---|---|
| シンプルな設定 |
packages/cdk/cdk.json の context
|
単一環境・小規模カスタマイズ |
| 複数環境管理 |
packages/cdk/parameter.ts の envs
|
dev/staging/prod を一括管理 |
# cdk.json に設定を書く例(最小限のカスタマイズ)
# packages/cdk/cdk.json
{
"context": {
"ragKnowledgeBaseEnabled": true,
"allowedSignUpEmailDomains": ["example.com"]
}
}
# parameter.ts で複数環境を管理する例
# packages/cdk/parameter.ts
export const envs: Record<string, StackInput> = {
dev: {
ragKnowledgeBaseEnabled: true,
...
},
prod: {
ragKnowledgeBaseEnabled: true,
allowedIpV4AddressRanges: ["203.0.113.0/24"],
...
},
};
6. 主要な設定パラメータ早見表
| パラメータ | デフォルト | 説明 |
|---|---|---|
ragEnabled |
false |
Amazon Kendra による RAG を有効化 |
ragKnowledgeBaseEnabled |
false |
Bedrock Knowledge Base による RAG を有効化 |
agentEnabled |
false |
Bedrock Agents 連携を有効化 |
agentBuilderEnabled |
false |
Agent Builder(ユーザー自作エージェント)を有効化 |
useCaseBuilderEnabled |
true |
Use Case Builder を有効化 |
mcpEnabled |
false |
MCP(Model Context Protocol)を有効化 |
closedNetworkMode |
false |
クローズドネットワーク構成(VPC 内完結)を有効化 |
allowedIpV4AddressRanges |
null |
WAF で許可する IPv4 アドレス範囲(CIDR 記法) |
allowedCountryCodes |
null |
WAF で許可する国コード(例:["JP"]) |
selfSignUpEnabled |
true |
ユーザーが自己サインアップできるか |
allowedSignUpEmailDomains |
null |
許可するメールドメイン(例:["example.com"]) |
samlAuthEnabled |
false |
SAML 認証(Entra ID / Google Workspace)を有効化 |
dashboard |
false |
CloudWatch ダッシュボードを有効化 |
7. 主要なファイルパス早見表
packages/cdk/
├── bin/generative-ai-use-cases.ts # CDK アプリのエントリーポイント
├── lib/create-stacks.ts # 全スタックの組み立て
├── lib/generative-ai-use-cases-stack.ts # メインスタック
├── lib/construct/
│ ├── auth.ts # Cognito User Pool / Identity Pool
│ ├── api.ts # API Gateway + Lambda 関数群
│ ├── database.ts # DynamoDB テーブル
│ ├── web.ts # CloudFront + S3 + フロントエンドビルド
│ ├── rag.ts # Amazon Kendra
│ ├── rag-knowledge-base.ts # Bedrock Knowledge Base
│ ├── use-case-builder.ts # Use Case Builder
│ └── mcp-api.ts # MCP(Docker Lambda + Function URL)
├── lambda/
│ ├── predict.ts # 非ストリーミングチャット
│ ├── predictStream.ts # ストリーミングチャット
│ └── utils/
│ ├── bedrockApi.ts # Bedrock Converse API ラッパー
│ ├── repository.ts # DynamoDB アクセス層
│ └── sagemakerApi.ts # SageMaker エンドポイント連携
└── parameter.ts # 複数環境の設定管理
packages/web/src/
├── main.tsx # ルーティング定義
├── hooks/
│ ├── useChat.ts # チャット状態管理(Zustand + Immer)
│ ├── useChatApi.ts # API 通信層
│ └── useOptimizePrompt.ts # プロンプト最適化
└── i18n/
├── config.ts # 言語設定(ja/en/ko/th/vi/zh)
└── (locales は public/locales/ 以下)
8. よく使う CDK コマンド
# デプロイされるスタックの一覧を確認
npx -w packages/cdk cdk list
# 差分を確認(デプロイ前の確認に)
npx -w packages/cdk cdk diff
# CloudFormation テンプレートを出力
npx -w packages/cdk cdk synth
# 特定スタックの差分のみ確認
npx -w packages/cdk cdk diff GenerativeAiUseCasesStack
9. ストリーミングの仕組み(概要)
ブラウザ
└─ Cognito Identity Pool → 一時 AWS 認証情報(AK/SK/ST)取得
└─ InvokeWithResponseStreamCommand(Lambda ARN 指定・SigV4 署名)
└─ Lambda: predictStream.ts(awslambda.streamifyResponse)
└─ Bedrock: ConverseStreamCommand
→ JSONL(JSON Lines)形式でトークンをストリーミング返却
- ストリームの各行は
JSON.stringify(chunk) + '\n'形式 - API Gateway は経由しない(直接 Lambda SDK 呼び出し)
- Lambda ARN は
VITE_APP_PREDICT_STREAM_FUNCTION_ARN環境変数でフロントエンドに渡される
10. RAG の有効化パターン
# パターン A:Bedrock Knowledge Base(推奨・新規構築)
ragKnowledgeBaseEnabled: true
# → RagKnowledgeBaseStack が自動作成(OpenSearch Serverless)
# パターン B:既存 Knowledge Base を流用
ragKnowledgeBaseEnabled: true
existingKnowledgeBaseId: "XXXXXXXXXX"
# パターン C:Amazon Kendra(既存 Index がある場合)
ragEnabled: true
kendraIndexArn: "arn:aws:kendra:ap-northeast-1:123456789012:index/XXXXX"
# 高度な RAG 設定(Knowledge Base)
ragKnowledgeBaseAdvancedParsing: true # Claude で高精度パース
queryDecompositionEnabled: true # クエリ分解
rerankingModelId: "amazon.rerank-v1:0" # リランキング
2026年4月18日時点・GenU v5.4.0 対応
