mcpField
A
aws-lambda

aws-lambda

github.com/awslabsクラウド・DevOps931259 回インストール3 週間前に更新
リポジトリ

aws-lambda について

aws-lambdaは、AWS Lambda開発者向けのスキルで、AWS Serverless MCP Serverを通じてサーバーレス開発を案内します。SAM CLI、イベントソース、オブザーバビリティ、性能最適化、デプロイの実践方法を扱います。

主な機能

  1. 01SAM CLIによる初期化・ビルド・テストの案内
  2. 02Lambda Web Adapterを使ったWebアプリのデプロイ
  3. 03DynamoDB、Kinesis、SQS、Kafkaのトリガー設定
  4. 04EventBridgeのパターンと設計ガイド
  5. 05CloudWatchとX-Rayのオブザーバビリティ案内
  6. 06性能・コスト・トラブルシューティングの助言

活用シーン

  1. 01サーバーレスLambdaアプリの構築とデプロイ
  2. 02関数のイベントソースマッピング設定
  3. 03Lambda Web Adapterを使うWebアプリのデプロイ
  4. 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.md
event-sources.md
getting-started.md
observability.md
optimization.md
orchestration-and-workflows.md
powertools.md
troubleshooting.md
web-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 のセットアップ
  1. SAM CLI をインストール:SAM CLI のインストールガイドに従います
  2. 確認:sam --version を実行します
コンテナランタイムのセットアップ
  1. Docker 互換のコンテナランタイムをインストール:sam_local_invoke とコンテナベースのビルドに必要です
  2. 確認: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 のサポートなしで続行しますか?」と尋ねます
  • ユーザーの確認なしに続行してはいけません

リソース

コメント