0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GenU チートシート ― よく使うコマンドと設定早見表

0
Posted at

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.jsoncontext 単一環境・小規模カスタマイズ
複数環境管理 packages/cdk/parameter.tsenvs 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 対応

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?