AWS サーバーレスアプリケーションモデル

シンプルかつクリーンな構文でサーバーレスアプリケーションを構築

AWS サーバーレスアプリケーションモデル (SAM、Serverless Application Model) は、サーバーレスアプリケーション構築用のオープンソースフレームワークです。迅速に記述可能な構文で関数、API、データベース、イベントソースマッピングを表現できます。リソースごとにわずか数行で、任意のアプリケーションを定義して YAML を使用してモデリングできます。デプロイ中、SAM が SAM 構文を AWS CloudFormation 構文に変換および拡張することで、サーバーレスアプリケーションの構築を高速化することができます。

SAM ベースのアプリケーションの構築を開始するには、AWS SAM CLI を使用します。SAM CLI により Lambda に似た実行環境が提供され、SAM テンプレートによって、または AWS Cloud Development Kit (CDK) を通じて定義されたアプリケーションの構築、テスト、デバッグをローカルで実行できます。 SAM CLI を使用して AWS にアプリケーションをデプロイすることもできます。また、ベストプラクティスに従うもので AWS のネイティブシステムやサードパーティーの CI/CD システムと統合する、安全な継続的インテグレーション (CI) や継続的デプロイメント (CD) のパイプラインを作成することもできます。

SAM および SAM CLI は、Apache 2.0 ライセンスの下でオープンソース化されています。SAM on GitHub または SAM CLI on GitHub に新機能や拡張機能を提供することができます。

SAM の開始方法

SAM CLI をインストールする

Mac

Brew を使用して SAM CLI をインストールする

brew tap aws/tap
brew install aws-sam-cli

Docker および AWS CLI が必要です。インストール手順をご確認ください

ZIP ファイルをダウンロードして SAM CLI をインストールする

Docker および AWS CLI が必要です。インストール手順をご確認ください

MSI を使用して SAM CLI をインストールする

Docker および AWS CLI が必要です。インストール手順をご確認ください

AWS SAM CLI を使用して、AWS CDK を使用して定義されたアプリケーションを構築し、テストします

Node Package Manager が必要です。インストール手順をご確認ください

SAM を選ぶ理由

単一のデプロイ設定

SAM を使用すると、関連コンポーネントを整理したり、メモリやタイムアウトなどの設定をリソース間で共有したり、単一のバージョン管理されたエンティティとしてすべての関連リソースを一緒にデプロイしたりできます。

開発ツールとの統合

SAM は一連の AWS サーバーレスツールと統合されています。AWS Serverless Application Repository で新しいアプリケーションを見つけたり、AWS Cloud9 IDE を使用して SAM ベースのサーバーレスアプリケーションを作成、テスト、デバッグしたり、AWS CodeBuildAWS CodeDeployAWS CodePipeline を使用してデプロイパイプラインを構築したりできます。プロジェクト構造、コードリポジトリ、お客様向けに設定された CI/CD パイプラインを開始するには、AWS CodeStar をお試しください。

ローカルでのテストおよびデバッグ

SAM CLI を使用してコードをステップスルーおよびデバッグできます。Lambda に似た実行環境がローカルに提供され、問題を前もって検出することができます。 

AWS CloudFormation での構築

AWS CloudFormation の拡張機能である AWS SAM を使用すると、CloudFormation の信頼性の高いデプロイ機能を利用できます。SAM テンプレート内で CloudFormation を使用してリソースを定義できるほか、AWS CloudFormation で利用可能なリソース、組み込み関数、その他のテンプレート機能といったもの一式を使用することもできます。

組み込みのベストプラクティス

設定としてインフラストラクチャをデプロイして、コードレビューなどのベストプラクティスを活用することができます。わずか数行の SAM 設定で、AWS CodeDeploy および AWS X-Ray によるトレースを介した段階的なデプロイを可能にします。

SAM に貢献する

プルリクエストを実行し、バグをレポートし、アイディアを共有して、AWS SAM テンプレートの全仕様を改善します

SAM CLI に関して、新しいコマンドの追加または既存のコマンドの拡張、バグのレポート、ドキュメントの改善をします

ドキュメントの詳細や SAM チュートリアルの確認はこちら 

SAM リソースページにアクセスする
ご不明な点がありますか?
お問い合わせ