aws-lambda について
aws-lambdaは、AWS Lambda開発者向けのスキルで、AWS Serverless MCP Serverを通じてサーバーレス開発を案内します。SAM CLI、イベントソース、オブザーバビリティ、性能最適化、デプロイの実践方法を扱います。
主な機能
- 01SAM CLIによる初期化・ビルド・テストの案内
- 02Lambda Web Adapterを使ったWebアプリのデプロイ
- 03DynamoDB、Kinesis、SQS、Kafkaのトリガー設定
- 04EventBridgeのパターンと設計ガイド
- 05CloudWatchとX-Rayのオブザーバビリティ案内
- 06性能・コスト・トラブルシューティングの助言
活用シーン
- 01サーバーレスLambdaアプリの構築とデプロイ
- 02関数のイベントソースマッピング設定
- 03Lambda Web Adapterを使うWebアプリのデプロイ
- 04ログ、トレース、性能問題の調査
MCP 対応
AWS Serverless MCP Serverを通じて、サーバーレス開発のガイダンスを提供します。設定ではプロジェクト作成、IaC生成、デプロイの書き込みが既定で有効で、機密データへのアクセスは既定で無効です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ awslabs/ agent-plugins --skill aws-lambdaインストール後、Claude Code で/aws-lambdaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/event-driven-architecture.mdevent-sources.mdgetting-started.mdobservability.mdoptimization.mdorchestration-and-workflows.mdpowertools.mdtroubleshooting.mdweb-app-deployment.md詳細
AWS Lambda サーバーレス開発
AWS のサーバーレスサービスを使用して、サーバーレスアプリケーションの設計、構築、デプロイ、デバッグを行います。このスキルでは、AWS Serverless MCP Server を通じてサーバーレス開発のガイダンスを利用でき、ベストプラクティスを組み込んだ本番環境対応のサーバーレスアプリケーションを構築できます。
プロジェクトの初期化やデプロイには SAM CLI、Web アプリケーションには Lambda Web Adapter、イベント駆動型アーキテクチャにはイベントソースマッピングを使用します。AWS がインフラストラクチャのプロビジョニング、スケーリング、モニタリングを自動的に処理します。
主な機能:
- SAM CLI との統合:サーバーレスアプリケーションの初期化、ビルド、デプロイ、テスト
- Web アプリケーションのデプロイ:Lambda Web Adapter を使用したフルスタックアプリケーションのデプロイ
- イベントソースマッピング:DynamoDB、Kinesis、SQS、Kafka 用の Lambda トリガーの設定
- Lambda durable functions:チェックポイント機能を備えた、回復力の高い複数ステップのアプリケーション。ガイダンスについては、durable-functions スキルを参照してください
- Lambda Managed Instances:ライフサイクルを管理した専用 EC2 インスタンス上での Lambda の実行。評価、設定、移行のガイダンスについては、managed-instances スキルを参照してください
- スキーマ管理:スキーマレジストリを使用した型安全な EventBridge 連携
- オブザーバビリティ:CloudWatch のログ、メトリクス、X-Ray トレース
- パフォーマンス最適化:適正なリソースサイズの設定、コスト最適化、トラブルシューティング
リファレンスファイルを読み込むタイミング
ユーザーが取り組んでいる内容に応じて、適切なリファレンスファイルを読み込みます。
- 入門、何を構築するか、プロジェクトの種類の選択、または既存のプロジェクトでの作業 -> references/getting-started.mdを参照してください
- SAM、CDK、デプロイ、IaC テンプレート、CDK コンストラクト、またはCI/CD パイプライン -> aws-serverless-deployment スキル(このプラグイン内の別スキル)を参照してください
- Web アプリのデプロイ、Lambda Web Adapter、API エンドポイント、CORS、認証、カスタムドメイン、またはsam local start-api -> references/web-app-deployment.mdを参照してください
- イベントソース、DynamoDB Streams、Kinesis、SQS、Kafka、S3 通知、またはSNS -> references/event-sources.mdを参照してください
- EventBridge、イベントバス、イベントパターン、イベント設計、Pipes、またはスキーマレジストリ -> references/event-driven-architecture.mdを参照してください
- 耐久性のある関数、チェックポイント処理、リプレイモデル、サーガパターン、または長時間実行する Lambda ワークフロー -> durable-functions スキル(完全な SDK リファレンス、テスト、デプロイガイドを含む、このプラグイン内の別スキル)を参照してください
- Lambda Managed Instances、LMI、キャパシティープロバイダー、マルチコンカレンシー、EC2 ベースの Lambda、コールドスタートの排除、またはReserved Instances による Lambda のコスト最適化 -> managed-instances スキル(評価、設定、移行に関する、このプラグイン内の別スキル)を参照してください
- オーケストレーション、ワークフロー、またはDurable Functions と Step Functions の比較 -> references/orchestration-and-workflows.mdを参照してください
- Step Functions、ASL、ステートマシン、JSONata、Distributed Map、SDK 統合、TestState API、サービス統合のモック、またはステートマシンの単体テスト -> 詳細なガイダンスについてはaws-step-functions スキルを参照してください
- オブザーバビリティ、ログ記録、トレーシング、メトリクス、アラーム、またはダッシュボード -> references/observability.mdを参照してください
- 最適化、コールドスタート、メモリのチューニング、コスト、またはストリーミング -> references/optimization.mdを参照してください
- Powertools、冪等性、フィーチャーフラグ、パラメーター、パーサー、バッチ処理、またはデータマスキング -> references/powertools.mdを参照してください
- トラブルシューティング、エラー、デバッグ、またはデプロイの失敗 -> references/troubleshooting.mdを参照してください
ベストプラクティス
プロジェクトのセットアップ
- 実施すること:ユースケースに適したテンプレートを指定して、
sam_initまたはcdk initを使用します - 実施すること:タイムアウト、メモリ、ランタイム、トレーシングのグローバルなデフォルトを設定します(SAM では
Globals、CDK ではコンストラクトのプロパティを使用) - 実施すること:構造化ログ、トレーシング、メトリクス(EMF)、冪等性、バッチ処理には AWS Lambda Powertools を使用します。Python、TypeScript、Java、.NET で利用できます
- 避けること:リソース設定を理解せずに、インターネット上のテンプレートをコピー&ペーストします
- 避けること:ワークロードにかかわらず、すべての関数に同じメモリとタイムアウトの値を使用します
セキュリティ
- 推奨:特定のリソースとアクションに限定した、最小権限の IAM ポリシーに従います
- 推奨:イベントソースマッピング用の適切な IAM ポリシーを生成するには、
secure_esm_*ツールを使用します - 推奨:シークレットは AWS Secrets Manager または SSM Parameter Store に保存し、環境変数には決して保存しません
- 推奨:可能な場合は、AWS サービスへのアクセスに NAT ゲートウェイではなく VPC エンドポイントを使用します
- 推奨:Amazon GuardDuty Lambda Protection を有効にして、脅威(暗号通貨のマイニング、データの流出、C2 コールバック)に対する関数のネットワークアクティビティを監視します
- 禁止:IAM ポリシーでワイルドカード(
*)のリソース ARN やアクションを使用します - 禁止:アプリケーションコードやテンプレートに認証情報やシークレットをハードコードします
- 禁止:モジュールレベルの変数にユーザーデータや機密情報を保存します。実行環境は異なる呼び出し元間で再利用される場合があります
冪等性
- 推奨:冪等な関数コードを記述します。Lambda はイベントを少なくとも1回配信するため、重複した呼び出しを安全に処理できる必要があります
- 推奨:重要な操作には、DynamoDB をバックエンドとする AWS Lambda Powertools の冪等性ユーティリティを使用します
- 推奨:副作用を実行する前に、ハンドラーの冒頭でイベントを検証し、重複を排除します
- 禁止:イベントは一度しか処理されないと想定します
トピック固有のベストプラクティスについては、上記の参照表にある専用ガイドファイルをご覧ください。
Lambda の制限事項クイックリファレンス
開発者がよく直面する制限事項:
| リソース | 制限 |
|---|---|
| 関数のタイムアウト | 900 秒(15 分) |
| メモリ | 128 MB – 10,240 MB |
| 1 vCPU 相当 | 1,769 MB のメモリ |
| 同期ペイロード(リクエスト + レスポンス) | 各 6 MB |
| 非同期呼び出しのペイロード | 1 MB |
| ストリーミングレスポンス | 200 MB |
| デプロイパッケージ(.zip、展開後) | 250 MB |
| デプロイパッケージ(.zip アップロード、圧縮後) | 50 MB |
| コンテナイメージ | 10 GB |
| 関数あたりのレイヤー数 | 5 |
| 環境変数(合計) | 4 KB |
/tmp の一時ストレージ | 512 MB – 10,240 MB |
| アカウントの同時実行数(デフォルト) | 1,000(引き上げをリクエスト可能) |
| バースト時のスケーリングレート | 10 秒あたり 1,000 件の新規実行 |
アカウントの上限は Service Quotas で確認してください:aws lambda get-account-settings
トラブルシューティングのクイックリファレンス
| エラー | 原因 | 解決方法 |
|---|---|---|
Build Failed | 依存関係が不足しています | use_container: true を指定して sam_build を実行します |
Stack is in ROLLBACK_COMPLETE | 以前のデプロイに失敗しました | aws cloudformation delete-stack でスタックを削除し、再デプロイします |
IteratorAge が増加しています | ストリームコンシューマーの処理が遅れています | ParallelizationFactor と BatchSize を増やします。esm_optimize を使用します |
| EventBridge イベントが通知されずに破棄されます | DLQ がなく、再試行が上限に達しました | ルールのターゲットに RetryPolicy と DeadLetterConfig を追加します |
| Step Functions が通知されずに失敗します | Task 状態で再試行が設定されていません | Lambda.ServiceException と Lambda.AWSLambdaException を指定して Retry を追加します |
| Durable Function が再開しません | IAM 権限が不足しています | lambda:CheckpointDurableExecution と lambda:GetDurableExecutionState を追加します — durable-functions skill を参照してください |
詳しいトラブルシューティングについては、references/troubleshooting.md を参照してください。
設定
AWS CLI のセットアップ
このスキルを使用するには、ホストマシンで AWS 認証情報を設定する必要があります。
アクセスの確認:aws sts get-caller-identity を実行して、認証情報が有効であることを確認します。
SAM CLI のセットアップ
- SAM CLI をインストール:SAM CLI のインストールガイドに従います
- 確認:
sam --versionを実行します
コンテナランタイムのセットアップ
- Docker 互換のコンテナランタイムをインストール:
sam_local_invokeとコンテナベースのビルドに必要です - 確認:
docker --versionやfinch --versionなどの適切なコマンドを使用します
MCP サーバーの設定
書き込みアクセスはデフォルトで有効です。 プラグインには .mcp.json に --allow-write が設定されているため、MCP サーバーはユーザーに代わってプロジェクトの作成、IaC の生成、デプロイを実行できます。
Lambda や API Gateway のログなど、機密データへのアクセスはデフォルトでは有効になっていません。許可するには、.mcp.json に --allow-sensitive-data-access を追加します。
SAM テンプレートの検証フック
このプラグインには、template.yaml または template.yml の編集後に sam validate を自動実行する PostToolUse フックが含まれています。検証に失敗すると、エラーがシステムメッセージとして返されるため、すぐに修正できます。このフックを使用するには、SAM CLI と jq がインストールされている必要があります。いずれかがない場合、検証はスキップされ、その旨がシステムメッセージで通知されます。ユーザーは /hooks から無効にできます。
確認:jq --version を実行します
言語の選択
デフォルト:TypeScript
上書き構文:
- 「use Python」→ Python コードを生成します
- 「use JavaScript」→ JavaScript コードを生成します
指定がない場合は、必ず TypeScript を使用します
IaC フレームワークの選択
デフォルト:CDK
上書き構文:
- 「use CloudFormation」→ YAML テンプレートを生成します
- 「use SAM」→ YAML テンプレートを生成します
指定がない場合は、必ず CDK を使用します
Serverless MCP サーバーを利用できない場合
- ユーザーに「AWS Serverless MCP が応答していません」と伝えます
- 「MCP のサポートなしで続行しますか?」と尋ねます
- ユーザーの確認なしに続行してはいけません