AWS SAM テンプレート - AWS Serverless Application Model

AWS SAM テンプレート

sam init コマンドを実行して後続のワークフローを完了すると、AWS SAM によりアプリケーションプロジェクトディレクトリが作成されます。これは、AWS SAM プロジェクトです。サーバーレスアプリケーションを定義するには、AWS SAM プロジェクトにコードを追加します。AWS SAM プロジェクトは一連のファイルとフォルダで構成されますが、主に使用するファイルは AWS SAM テンプレート (名前は template.yaml) です。このテンプレートでは、リソース、イベントソースマッピング、およびサーバーレスアプリケーションを定義するその他のプロパティを表すコードを記述します。

注記

AWS SAM テンプレートのキー要素は、AWS SAM テンプレート仕様です。この仕様では、CloudFormation と比較した場合、より少ない数のコード行を使用してサーバーレスアプリケーションのリソース、イベントソースマッピング、アクセス許可、API、およびその他のプロパティを定義できる省略構文が提供されます。

このセクションでは、AWS SAM テンプレートのセクションを使用して、リソースタイプ、リソースプロパティ、データ型、リソース属性、組み込み関数、API Gateway 拡張機能を定義する方法の詳細について説明します。

AWS SAM テンプレートは、CloudFormation よりもコード行の数が少ない省略構文を使用する、一意の構文タイプを備えた CloudFormation テンプレートの拡張です。これにより、サーバーレスアプリケーションを構築する際に開発をスピードアップできます。詳細については、「AWS SAM リソースとプロパティ」を参照してください。CloudFormation テンプレートの完全なリファレンスについては、AWS CloudFormation ユーザーガイドの「CloudFormation Template Reference」を参照してください。

開発時には、アプリケーションコードを個別のファイルに分割すると、アプリケーションをより適切に整理および管理できる場合がよくあります。基本的な例として、AWS SAM テンプレートにこのコードを含めるのではなく、AWS Lambda 関数コードに別のファイルを使用することがあります。これを行うには、Lambda 関数コードをプロジェクトのサブディレクトリに整理し、AWS Serverless Application Model (AWS SAM) テンプレート内のローカルパスを参照します。