mcpField
A
aws-blocks

aws-blocks

github.com/aws開発3.3k5.6k 回インストール1 日前に更新
リポジトリ

aws-blocks について

AWS Blocks は、アプリケーションのバックエンドを構築する開発者向けの Infrastructure-from-Code フレームワークです。CDK、SDK、ローカルモックを型付き API にまとめ、ローカル開発とデプロイの手順を提供します。

主な機能

  1. 0118 種類以上の Building Blocks
  2. 02AWS 認証情報不要のローカルモック
  3. 03型付きフロントエンドインポート
  4. 04複数テンプレートによるプロジェクト作成
  5. 05サンドボックスと長期環境のデプロイ

活用シーン

  1. 01新規アプリの AWS バックエンド構築
  2. 02ストレージや認証機能のローカルテスト
  3. 03アプリの独立したテスト環境のデプロイ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill aws-blocks

インストール後、Claude Code で/aws-blocksを入力して読み込まれたか確認します。

詳細

AWS Blocks アプリケーション開発

パッケージの命名規則: すべてのパッケージは @aws-blocks スコープで公開されています(例:@aws-blocks/core、@aws-blocks/blocks、@aws-blocks/bb-kv-store)。

概要

AWS Blocks は、Building Block に CDK、SDK、ローカルモックをまとめ、単一の API として提供する Infrastructure-from-Code フレームワークです。ストレージ、認証、リアルタイム通信、バックグラウンドジョブ、ファイル管理、AI/検索、メール、オブザーバビリティを網羅する 18 種類以上の Building Block を提供し、すべて AWS 認証情報なしでローカルに動作します。

主な特徴:

  • 1 つの aws-blocks/ ディレクトリでバックエンド全体を定義します
  • フロントエンドのインポートは完全に型付けされており、クライアントの生成は不要です
  • すべての Building Block は AWS なしでローカルに動作します(モックは .bb-data/ に保存されます)
  • 最小権限の認証情報を使い、npm run sandbox で一時的な個別テスト環境を、npm run deploy で長期間利用する環境をデプロイします

新しいプロジェクトのスキャフォールディング

npx @aws-blocks/create-blocks-app my-app
cd my-app
既存のプロジェクトに AWS Blocks を追加するには:
npx @aws-blocks/create-blocks-app .

既存のプロジェクトを検出し、コードと並ぶワークスペースとして aws-blocks/ を追加します。

Amplify Gen 2 プロジェクトに AWS Blocks を追加するには:
npx @aws-blocks/create-blocks-app .

CLI が amplify/backend.ts を検出すると、AWS Blocks を Amplify バックエンドに自動的に統合します。

特定のテンプレートを指定するには:
npx @aws-blocks/create-blocks-app my-app --template demo
cd my-app
利用可能なテンプレート
テンプレート説明
default基本的なアプリケーションアーキテクチャとパターンの実演に役立つ、基本認証、データの永続化、リアルタイム機能を備えた Vite + lit-html のスターターアプリ(--template を省略した場合に使用)
bare単一の「hello world」API メソッドとシンプルなフロントエンドを備えた Vite + lit-html のスターター
react単一の API エンドポイントと型付けされた React フロントエンドを備えた React + Vite のスターター
backendバックエンドのみ。フロントエンドはなく、単一のエンドポイントを備えた AWS Blocks API のみ
demoAuthBasic、KVStore、DistributedTable、Zod スキーマ、インデックス、認証で保護された CRUD を備えた Todo アプリ
auth-cognitoロール、デバイス管理、Authenticator UI を備えた、AuthCognito によるパスワードレスのメール OTP 機能一式
nextjsAWS Blocks バックエンド統合(SSR + Server Components)を備えた Next.js + React のスターター

開発ワークフロー

スキャフォールディング後、開発ワークフロー全体については node_modules/@aws-blocks/blocks/README.md を参照してください。以下の内容が含まれます。

  • 基本概念(アーキテクチャ、Building Block の選択)
  • プロジェクト構成と Scope の整理
  • エラー処理のパターン
  • スキーマ検証
  • ローカル開発
  • ベストプラクティスとよくある間違い
  • デプロイ用 IAM ロールの設定とセキュリティガイダンス

特定の Building Block を実装する際は、詳細な API リファレンスとして、そのパッケージの README を参照してください(例:node_modules/@aws-blocks/bb-kv-store/README.md)。これらは、インストール済みバージョンの正式なドキュメントです。

セキュリティに関する考慮事項

  • 公開すべきでないすべてのメソッドで await auth.requireAuth(context) を使用してください。ApiNamespace のメソッドはデフォルトで認証されません
  • API キーと認証情報には new AppSetting(scope, id, { secret: true }) を使用してください。ハードコードしたり、.env ファイルを使用したりしないでください
  • ユーザーデータを受け付ける KVStore/AppSetting には必ずスキーマを設定してください。RPC レイヤーは構造を検証しますが、ビジネスロジックは検証しません
  • 範囲の広い * IAM ポリシーを追加しないでください。各ビルディングブロックは、それぞれのリソースに限定した最小権限をすでに付与しています
  • FileBucket の blockPublicAccess は変更しないでください。代わりに CloudFront 経由で公開ファイルを配信してください
  • 本番環境では CORS_ALLOWED_ORIGINS を明示的に設定し、ワイルドカードは避けてください
  • クロスドメイン環境にデプロイする場合は、認証コンストラクターに crossDomain: true を渡してください(SameSite=None; Secure; Partitioned が有効になります)
  • 本番環境のアラートには、Hosting で monitoring: { enabled: true, snsTopicArn: '...' } を有効にしてください
  • 外部公開アプリには、CDK 経由で WAF と API Gateway のスロットリングを追加してください。これらはデフォルトでは含まれていません
  • Logger はシリアライズの安全性(循環参照、型変換)を提供しますが、機密情報はマスキングしません。生の認証情報、トークン、シークレットを Logger のメソッドに渡さないでください。ログに記録する前に、コンテキストオブジェクトをサニタイズしてください

コメント