mcpField
A
aws-serverless-deployment

aws-serverless-deployment

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

aws-serverless-deployment について

AWS Serverless Deploymentは、SAMまたはCDKを使ったAWSのサーバーレスアプリケーションの構築とデプロイを支援するスキルです。プロジェクト設定、インフラ定義、デプロイワークフロー、CI/CDを扱い、既定ではCDKとTypeScriptを使用します。

主な機能

  1. 01SAMとCDKのプロジェクト設定
  2. 02インフラテンプレートとコンストラクト
  3. 03デプロイワークフローとCI/CDパイプライン
  4. 04SAMとCDKの併用ガイド
  5. 05SAMテンプレートの自動検証フック

活用シーン

  1. 01AWSサーバーレスプロジェクトの初期設定
  2. 02SAMテンプレートやCDKコンストラクトの作成・確認
  3. 03デプロイワークフローやCI/CDパイプラインの設定
  4. 04SAMからCDKへの移行計画

MCP 対応

このスキルはAWS Serverless MCP Serverを使って、プロジェクト作成、インフラコード生成、デプロイを行います。書き込み権限は既定で有効で、機密データへのアクセスには追加設定が必要です。

インストール

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

$npx skills add https://github.com/awslabs/agent-plugins --skill aws-serverless-deployment

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cdk-lambda-constructs.md
cdk-project-setup.md
cdk-serverless-patterns.md
sam-cdk-coexistence.md
sam-project-setup.md

詳細

AWS サーバーレスデプロイ

SAM または CDK を使用して、AWS にサーバーレスアプリケーションをデプロイします。このスキルでは、プロジェクトのひな形作成、IaC テンプレート、CDK コンストラクトとパターン、デプロイワークフロー、CI/CD パイプライン、SAM と CDK の併用について説明します。

Lambda の実行時の動作、イベントソース、オーケストレーション、オブザーバビリティ、最適化については、aws-lambda スキルを参照してください。

参照ファイルを読み込むタイミング

ユーザーが取り組んでいる内容に応じて、適切な参照ファイルを読み込んでください。

  • SAM プロジェクトのセットアップ、テンプレート、デプロイワークフロー、ローカルテスト、またはコンテナイメージ -> references/sam-project-setup.mdを参照してください
  • CDK プロジェクトのセットアップ、コンストラクト、CDK のテスト、またはCDK パイプライン -> references/cdk-project-setup.mdを参照してください
  • CDK Lambda コンストラクト、NodejsFunction、PythonFunction、またはCDK Function -> references/cdk-lambda-constructs.mdを参照してください
  • CDK サーバーレスパターン、API Gateway CDK、Function URL CDK、EventBridge CDK、DynamoDB CDK、またはSQS CDK -> references/cdk-serverless-patterns.mdを参照してください
  • SAM と CDK の併用、SAM から CDK への移行、またはCDK での sam build の使用 -> references/sam-cdk-coexistence.mdを参照してください

ベストプラクティス

SAM
  • 推奨:ユースケースに適したテンプレートで sam_init を使用します
  • 推奨:Globals セクションでタイムアウト、メモリ、ランタイム、トレースのグローバルなデフォルト値を設定します
  • 推奨:複数環境へのデプロイには、環境ごとのセクションを samconfig.toml で使用します
  • 推奨:ネイティブ依存関係を使用する場合は、sam build --use-container を使用します
  • 非推奨:リソース設定を理解せずに、インターネット上のテンプレートをコピーして貼り付けること
  • 非推奨:テンプレートにリソース ARN やアカウント ID をハードコードすること。!Ref、!GetAtt、!Sub を使用します
CDK
  • 推奨:TypeScript を使用します。型チェックにより、AWS API の呼び出し前の合成時にエラーを検出できます
  • 推奨:L1 や生の IAM ステートメントより、L2 コンストラクトと grant* メソッドを優先します
  • 推奨:ステートフルリソースとステートレスリソースを別々のスタックに分け、ステートフルなスタックでは終了保護を有効にします
  • 推奨:cdk.context.json をバージョン管理にコミットします。VPC/AZ の検索結果をキャッシュし、決定的な合成を可能にします
  • 推奨:aws-cdk-lib/assertions を使用してユニットテストを作成します。ステートフルリソースの論理 ID をアサートし、意図しない置換を検出します
  • 推奨:デプロイのたびに、CI で cdk diff を実行して変更を確認します
  • 非推奨:アカウント ID やリージョン文字列をハードコードすること。this.account と this.region を使用します
  • 非推奨:本番環境でパイプラインを使わずに cdk deploy を直接使用すること
  • 非推奨:cdk bootstrap を省略すること。CDK ツールキットスタックがないとデプロイに失敗します

設定

AWS CLI のセットアップ

このスキルを使用するには、ホストマシンで AWS 認証情報が設定されている必要があります。

アクセスを確認する:aws sts get-caller-identity を実行して、認証情報が有効であることを確認します

SAM CLI のセットアップ

確認する:sam --version を実行します

コンテナランタイムのセットアップ
  1. Docker 互換のコンテナランタイムをインストールする:sam_local_invoke とコンテナベースのビルドに必要です
  2. 確認する:docker --version や finch --version など、適切なコマンドを使用します
AWS Serverless MCP Server

書き込みアクセスはデフォルトで有効です。 プラグインの .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 を実行します

IaC フレームワークの選択

デフォルト:CDK

上書き構文:

  • "use CloudFormation" → YAML テンプレートを生成します
  • "use SAM" → YAML テンプレートを生成します

指定がない場合は、必ず CDK を使用します

CDK の言語選択

デフォルト:TypeScript

上書き構文:

  • "use Python" → Python コードを生成します
  • "use JavaScript" → JavaScript コードを生成します

指定がない場合は、必ず TypeScript を使用します

エラー発生時の対応

Serverless MCP サーバーを利用できない場合
  • ユーザーに通知します:「AWS Serverless MCP が応答していません」
  • 「MCP のサポートなしで続行しますか?」と尋ねます
  • ユーザーの確認なしに続行してはいけません

リソース

コメント