翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SAM テンプレートの構造
AWS SAM テンプレートファイルは、 CloudFormation 「 AWS CloudFormation ユーザーガイド」の「テンプレート構造」で説明されているテンプレートファイルの形式に厳密に従います。 AWS SAM テンプレートファイルと CloudFormation テンプレートファイルの主な違いは次のとおりです。
-
変換の宣言。
Transform: AWS::Serverless-2016-10-31宣言は AWS SAM テンプレートファイルに必須です。この宣言は、 CloudFormation テンプレートファイルをテンプレートファイルとして識別します AWS SAM 。Transform の詳細については、AWS CloudFormation ユーザーガイドの「Transform」を参照してください。 -
Globals セクション。
Globalsセクションは に固有です AWS SAM。これは、すべてのサーバーレス関数と API に共通するプロパティを定義します。AWS::Serverless::Function、、AWS::Serverless::Api、AWS::Serverless::CapacityProvider、AWS::Serverless::HttpApi、およびAWS::Serverless::StateMachineリソースはすべてAWS::Serverless::SimpleTable、Globalsセクションで定義されているプロパティを継承します。このセクションの詳細については、「AWS SAM テンプレートの Globals セクション」を参照してください。 -
Resources セクション。 AWS SAM テンプレートでは、
Resourcesセクションに CloudFormation リソースと AWS SAM リソースの組み合わせを含めることができます。 CloudFormation リソースの詳細については、「 AWS CloudFormation ユーザーガイド」のAWS 「リソースタイプとプロパティタイプのリファレンス」を参照してください。 AWS SAM リソースの詳細については、「」を参照してくださいAWS SAM リソースとプロパティ。
AWS SAM テンプレートファイルの他のすべてのセクションは、同じ名前の CloudFormation テンプレートファイルセクションに対応しています。
YAML
以下の例は、YAML 形式のテンプレートフラグメントを示しています。
Transform: AWS::Serverless-2016-10-31 Globals:set of globalsDescription:StringMetadata:template metadataParameters:set of parametersMappings:set of mappingsConditions:set of conditionsResources:set of resourcesOutputs:set of outputs
テンプレートセクション
AWS SAM テンプレートには、いくつかの主要なセクションを含めることができます。必須のセクションは、Transform と Resources のみです。
テンプレートセクションは任意の順序で含めることができますが、ただし次の例に示すように、言語拡張機能を使用する場合には、サーバーレス変換の前 (AWS::Serverless-2016-10-31 の前) に AWS::LanguageExtensions を追加する必要があります。
Transform: - AWS::LanguageExtensions - AWS::Serverless-2016-10-31
テンプレートを作成する際には、以下の一覧が示す論理的な順序の使用が役に立つ場合があります。これは、1 つのセクションの値が前のセクションの値を参照している可能性があるためです。
- 変換 (必須)
-
AWS SAM テンプレートの場合は、このセクションに の値を含める必要があります
AWS::Serverless-2016-10-31。追加の transform はオプションです。Transform の詳細については、AWS CloudFormation ユーザーガイドの「Transform」を参照してください。
- グローバル (オプション)
-
すべてのサーバーレス関数、API、および単純テーブルに共通のプロパティです。
AWS::Serverless::Function、、AWS::Serverless::Api、AWS::Serverless::CapacityProvider、AWS::Serverless::HttpApi、およびAWS::Serverless::StateMachineリソースはすべてAWS::Serverless::SimpleTable、Globalsセクションで定義されているプロパティを継承します。このセクションは に固有です AWS SAM。 CloudFormation テンプレートに対応するセクションはありません。
- Description (オプション)
-
テンプレートを説明するテキスト文字列です。
このセクションは、 CloudFormation テンプレートの
Descriptionセクションに直接対応しています。 - メタデータ (オプション)
-
テンプレートに関する追加情報を提供するオブジェクトです。
このセクションは、 CloudFormation テンプレートの
Metadataセクションに直接対応しています。 - パラメータ (任意)
-
実行時 (スタックを作成または更新するとき) にテンプレートに渡す値です。テンプレートの
ResourcesおよびOutputsセクションからのパラメータを参照できます。Parametersセクションで宣言されるオブジェクトによって、sam deploy --guided コマンドがユーザーに追加のプロンプトを表示するようになります。sam deployコマンドの--parameter-overridesパラメータ (および設定ファイルのエントリ) を使用することで渡される値で、 AWS SAM テンプレートファイルよりも優先されます。sam deployコマンドの詳細については、 AWS SAM CLI コマンドリファレンスの「sam deploy」を参照してください。設定ファイルの詳細については、「AWS SAM CLI 設定ファイル」を参照してください。 - マッピング (任意)
-
キーと関連する値のマッピングで、条件パラメータ値の指定に使用でき、ルックアップテーブルに似ています。
ResourcesセクションとOutputsセクションでFn::FindInMap組み込み関数を使用することによって、キーを対応する値と一致させることができます。このセクションは、 CloudFormation テンプレートの
Mappingsセクションに直接対応しています。 - 条件 (オプション)
-
スタックの作成中または更新中に、特定のリソースが作成されるかどうか、または特定のリソースプロパティに値が割り当てられるかどうかを制御する条件です。例えば、スタックが実稼働用であるかテスト環境用であるかに依存するリソースを、条件付きで作成できます。
このセクションは、 CloudFormation テンプレートの
Conditionsセクションに直接対応しています。 - リソース (必須)
-
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Simple Storage Service (Amazon S3) バケットなどのスタックリソースとそれらのプロパティです。テンプレートの
ResourcesとOutputsセクションのリソースを参照できます。このセクションは、 CloudFormation テンプレートの
Resourcesセクションに似ています。 AWS SAM テンプレートでは、このセクションには AWS SAM リソースに加えて CloudFormation リソースを含めることができます。 - 出力 (任意)
-
スタックのプロパティを表示するたびに返される値です。たとえば、S3 バケット名の出力を宣言し、
aws cloudformation describe-stacksAWS Command Line Interface (AWS CLI) コマンドを呼び出して名前を表示できます。このセクションは、 CloudFormation テンプレートの
Outputsセクションに直接対応します。
次の手順
AWS SAM テンプレートファイルを含むサンプルサーバーレスアプリケーションをダウンロードしてデプロイするには、の開始方法 AWS SAM「」を参照して、「」の手順に従いますチュートリアル: を使用して Hello World アプリケーションをデプロイする AWS SAM。