AWS SAM でサポートされているリソース属性 - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SAM でサポートされているリソース属性

リソース属性は、追加の動作と関係性を制御するために AWS SAM と AWS CloudFormation のリソースに追加できる属性です。リソース属性の詳細については、AWS CloudFormation ユーザーガイドの「Resource Attribute Reference」を参照してください。

AWS SAM は、AWS CloudFormation によって定義されるリソース属性のサブセットをサポートします。サポートされているリソース属性には、対応する AWS SAM リソースから生成されたベース AWS CloudFormation リソースのみにコピーされるものもあれば、対応する AWS SAM リソースから生成されたすべての AWS CloudFormation リソースにコピーされるものもあります。対応する AWS SAM から生成された AWS CloudFormation リソースの詳細については、「AWS SAM 向けに生成された AWS CloudFormation リソース」を参照してください。

以下の表は、AWS SAM がサポートするリソース属性を要約したもので、下記の「例外」が適用されます。

リソース属性 送信先で生成されるリソース

DependsOn

Metadata 1、2

生成されたベース AWS CloudFormation リソースのみ。AWS SAM リソースとベース AWS CloudFormation リソース間のマッピングについては、「生成された AWS CloudFormation リソースのシナリオ」を参照してください。

条件

DeletionPolicy

UpdateReplacePolicy

対応する AWS SAM リソースから生成されたすべての AWS CloudFormation リソース。生成された AWS CloudFormation リソースのシナリオについては、「生成された AWS CloudFormation リソースのシナリオ」を参照してください。

注意:

  1. AWS::Serverless::Function リソースタイプとの Metadata リソース属性の使用に関する詳細については、「でのカスタムランタイムを使用した Lambda 関数の構築 AWS SAM」を参照してください。

  2. AWS::Serverless::LayerVersion リソースタイプとの Metadata リソース属性の使用に関する詳細については、「AWS SAM での Lambda レイヤーの構築」を参照してください。

例外

前述のリソース属性ルールには、いくつかの例外があります。

  • AWS::Lambda::LayerVersion については、AWS SAM 限定のカスタムフィールド RetentionPolicy が、生成された AWS CloudFormation リソースの DeletionPolicy を設定します。この設定は、DeletionPolicy 自体よりも優先されます。どちらも設定されていない場合、DeletionPolicy はデフォルトで Retain に設定されます。

  • AWS::Lambda::Version については、DeletionPolicy が指定されていない場合のデフォルトは Retain です。

  • サーバーレス関数に DeploymentPreferences が指定されているシナリオでは、以下の生成された AWS CloudFormation リソースにリソース属性がコピーされません。

    • AWS::CodeDeploy::Application

    • AWS::CodeDeploy::DeploymentGroup

    • このシナリオ用に作成された、CodeDeployServiceRole という名前の AWS::IAM::Role

  • 暗黙的に作成された API イベントソースを伴う複数の関数が AWS SAM テンプレートに含まれている場合、これらの関数は生成された AWS::ApiGateway::RestApi リソースを共有します。このシナリオでは、関数に異なるリソース属性がある場合、生成された AWS::ApiGateway::RestApi リソースに対し、AWS SAM が以下の優先リストに従ってリソース属性をコピーします。

    • UpdateReplacePolicy:

      1. Retain

      2. Snapshot

      3. Delete

    • DeletionPolicy:

      1. Retain

      2. Delete