Serverless Framework 4.2.3 が AWS SAM・CloudFormation テンプレートに対応——既存資産をそのまま活かすマルチツール戦略

益子 竜与志
益子 竜与志
XThreads
最終更新日:2026年04月05日公開日:2026年04月05日

Serverless Framework 4.2.3 で AWS SAM・CloudFormation テンプレートの実験的サポートが追加されました。既存テンプレートを修正せずそのままデプロイでき、Serverless Variables や Serverless Compose との統合も可能です。本記事では、この機能の概要・使い方・活用シナリオを解説します。

なぜ Serverless Framework が SAM・CloudFormation をサポートするのか

サーバーレス開発の現場では、AWS SAM(Serverless Application Model)と Serverless Framework の両方を使い分けているチームが少なくありません。AWS SAM は CloudFormation の拡張として Lambda・API Gateway・DynamoDB などのリソースを簡潔に定義できるツールです。一方の Serverless Framework はマルチクラウド対応・豊富なプラグインエコシステム・Serverless Compose による複数サービスの一元管理が強みです。

中〜大規模の組織では、既存の SAM テンプレート資産を保持しながら、新規サービスは Serverless Framework で構築するケースが増えています。その結果、デプロイパイプラインが二重管理になり、CI/CD フローの複雑化・学習コストの増大・設定ファイルの散在といった課題が生じていました。

こうした背景を受け、Serverless Framework チームは 2024年8月に バージョン 4.2.3 で AWS SAM・CloudFormation テンプレートへの実験的サポートを追加しました。既存の SAM/CF テンプレートファイルを一切修正することなく、serverless deploy コマンド一つでデプロイできる仕組みです。「複数のサーバーレスフレームワークは不要、1つで統一管理したい」という組織の声に応えた機能といえます。

Serverless Framework が SAM テンプレートを自動検出してデプロイするフロー図(猫エンジニア解説)
Serverless Framework が template.yml を自動検出し、そのままデプロイするフロー

主な機能と対応範囲

4.2.3 で追加された SAM/CloudFormation サポートには、主に 4 つの機能が含まれています。

テンプレートのシームレスなデプロイについては、SAM または CloudFormation テンプレートを既存のまま Serverless Framework でデプロイできます。テンプレートへの変更は不要で、YAML・JSON の両形式に対応しています。プロジェクトルートに template.ymltemplate.yamltemplate.json のいずれかが存在する場合、Serverless Framework が自動検出します。

samconfig.toml のサポートについては、AWS SAM CLI の設定ファイルを Serverless Framework が読み取ります。ただし、SAM CLI 固有のコマンド設定は無視され、デプロイ関連のパラメータのみが利用されます。

設定キー

説明

デフォルト値

stack_name

CloudFormation スタック名

(必須)

region

デプロイ先 AWS リージョン

us-east-1

template_file

テンプレートファイルのパス

template.yml

s3_bucket

デプロイ用 S3 バケット(省略可)

SLS デフォルトバケット

parameter_overrides

CloudFormation パラメータ上書き(省略可)

なし

Serverless Variables のサポートについては、Serverless Framework の変数解決機能を SAM/CF テンプレート内でもそのまま利用できます。現時点でサポートされている変数は以下のとおりです。

変数構文

用途

${aws:accountId}

AWS アカウント ID

${aws:region}

デプロイ先 AWS リージョン

${cf:anotherService.outputKey}

別スタックの Output 値

${env:ENV_VAR}

環境変数の値

${ssm:/path/to/param}

AWS Systems Manager パラメータ

${file(./myFile.yml)}

外部ファイルの内容

${git:<variable>}

Git リポジトリの情報

${s3:myBucket/myKey}

S3 オブジェクトの値

実際の使い方——既存 SAM テンプレートをそのまま使う

既存の SAM プロジェクトを Serverless Framework でデプロイする手順は非常にシンプルです。プロジェクトルートに template.yml が存在する場合、serverless deploy --stack my-dev-stack --region ap-northeast-1 のようなコマンドだけでデプロイが完了します。samconfig.toml を使っている場合はスタック名の指定も不要で、serverless deploy だけで実行できます。

Serverless Variables を活用すると、Lambda の環境変数に SSM パラメータや AWS アカウント ID を動的に注入できます。たとえば、SAM テンプレートの環境変数フィールドに ${ssm:/myapp/prod/database_url}${aws:accountId} と記述するだけで、Serverless Framework がデプロイ前に自動解決して CloudFormation に渡します。

その他の CLI コマンドとして、sls info --stack my-stack でスタックの Output 値を一覧表示でき、sls remove --stack my-stack でスタックを削除できます。

Serverless Compose との連携でマルチサービスを一元管理

今回のアップデートで特に注目すべきは、Serverless Compose との統合です。これにより、従来の Serverless Framework サービスと SAM/CloudFormation スタックを 1 つの serverless-compose.yml でまとめて管理・デプロイできるようになりました。

Serverless Compose で SAM スタックと SLS サービスを混在管理するアーキテクチャ図(猫エンジニア解説)
Serverless Compose により、SAM スタックと従来の SLS サービスを一元管理できる

たとえば、従来の Serverless Framework サービス(api-service)と SAM テンプレートプロジェクト(sam-worker)を組み合わせる場合、serverless-compose.yml に両サービスのパスを記述します。api-service の Output 値(エンドポイント URL など)を sam-worker の環境変数として受け渡す依存関係も、パラメータ参照で簡単に表現できます。

さらに、ステージごとの共通変数を serverless-compose.ymlstages セクションで定義しておくと、本番環境・開発環境それぞれの設定(APIキー・ログレベルなど)がすべてのサービスに自動的に適用されます。SAM テンプレート側は ${param:キー名} の記法で参照するだけで、環境ごとの条件分岐が不要になります。

現時点の制約と今後のロードマップ

本機能は Experimental(実験的) なステータスであり、利用にあたっては現時点の制約を把握しておく必要があります。

機能

対応状況

SAM/CFN テンプレートのデプロイ(JSON/YAML)

対応済み

SAM/CFN テンプレートの削除(sls remove)

対応済み

Serverless Variables の利用(一部)

対応済み

Serverless Compose との統合

対応済み

sls info でスタック情報表示

対応済み

個別関数のデプロイ(sls deploy function)

未対応(今後の予定)

関数の直接呼び出し(sls invoke)

未対応(今後の予定)

Lambda Layers / Containers / Step Functions

未対応(今後の予定)

なお、samconfig.toml に SAM CLI 固有のコマンド設定(build・sync・local_start_api 等)が含まれている場合、Serverless Framework はそれらを無視して処理を続けます。SAM CLI との並行利用が前提の設定ファイルでも安全に使えます。

Serverless Framework チームが公表しているロードマップには、SAM/CF テンプレートを Serverless Compose にさらに深く統合すること、ステージ別の設定変数をすべてのプロジェクトで共有できること、セキュリティポリシーとオブザーバビリティ設定の統合管理などが含まれています。

まとめ——ツール統合で得られるメリットと判断のポイント

Serverless Framework 4.2.3 における SAM/CloudFormation サポートは、すでに SAM を活用しているチームに対して「既存資産を守りながら Serverless Framework の恩恵を受ける」という現実的な選択肢を提供します。以下のようなシナリオでは、本機能の採用を積極的に検討する価値があります。

  • SAM で構築した既存サービスと、新規の Serverless Framework サービスを同一の CI/CD パイプラインで管理したい
  • Serverless Compose を使って複数スタックの依存関係とデプロイ順序を一元管理したい
  • Serverless Variables(SSM・スタック間 Output 参照など)を SAM テンプレート内でも活用したい
  • デプロイツールを統一することで、チームの学習コストと運用コストを削減したい

一方で、sls invokesls logs などの開発支援コマンドはまだ未対応です。現時点では「デプロイ・削除・スタック情報の取得」に限定した利用が現実的です。本番環境への適用前に十分な検証を行い、SAM CLI との使い分けも視野に入れた設計をおすすめします。

Ragate では、AWS サーバーレスアーキテクチャの設計・構築・運用を幅広く支援しています。Serverless Framework や AWS SAM の導入・移行をご検討の際は、ぜひお気軽にご相談ください。

IT/DXプロジェクト推進するPMO・コンサル人材を提供しています

AI利活用×高生産性のリソースで、あらゆるIT/DXプロジェクトを一気通貫支援します

詳しく見る →
AI駆動型ITコンサルティング
Careerバナーconsultingバナー