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

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

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

SAM ベースのアプリケーションの構築を開始するには、AWS SAM CLI を使用します。SAM CLI により Lambda に似た実行環境が提供され、SAM テンプレートで定義されたアプリケーションの構築、テスト、デバッグをローカルで実行できます。お使いのアプリケーションを SAM CLI を使用して AWS にデプロイすることもできます。

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

SAM の開始方法

SAM CLI をインストールする

Mac または Linux

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

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

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

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

  • 64 ビット
  • 32 ビットマシンを操作していて、32 ビットインストーラが必要な場合は、ここをクリックしてください。

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

pip install --user aws-sam-cli

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

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 が Amazon API Gateway オーソライザーをサポート

2018 年 10 月 26 日 — AWS SAM の単一のプロパティ設定を使用して Amazon API Gateway オーソライザーを定義し、Amazon API Gateway の API にアクセスできるユーザーを制御することができます。これには、Amazon Cognito ユーザープールまたは API Gateway Lambda オーソライザーを使用します。 続きを読む

AWS SAM CLI が Go 関数のデバッグと 50 超のイベントでのテストをサポート

2018 年 8 月 30 日 —  SAM CLI を用いて Go で書かれた Lambda 関数を、Java、Python、Node.js で書かれたものに加えてデバッグできるようになりました。また sam local generate-event コマンドを用いて 50 を越すイベントに対してサンプルイベントペイロードを生成できるようにもなりました。続きを読む

新しい AWS SAM CLI コマンドにより、サーバーレスアプリケーションのテストとデバッグを簡素化

2018 年 7 月 19 日 —  sam logs コマンドによって、AWS Lambda 関数で生成されたログの取得、表示、フィルタリングを実行することができます。また、sam local start-lambda コマンドにより、自動テストからローカルの Lambda 関数を起動することも可能になっています。続きを読む

SAM に貢献する

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

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

Slack で、AWS SAM の開発に質問をしたり、回答したり、貢献したりできます 

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

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