支援的資源屬性 AWS SAM - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

支援的資源屬性 AWS SAM

資源屬性是您可以加入的屬性,以 AWS SAM 及用來控制其他行為和關係的 AWS CloudFormation 資源。如需有關資源屬性的詳細資訊,請參閱AWS CloudFormation 使用指南中的資源屬性參考

AWS SAM 支援由定義的資源屬性子集 AWS CloudFormation。在支援的資源屬性中,有些只會複製到對應 AWS CloudFormation 資源的基礎產生 AWS SAM 資源,而有些則複製到所有產生的 AWS CloudFormation 資源,從對應的 AWS SAM 資源產生。如需有關從對應 AWS CloudFormation 資源產生之資源的詳細 AWS SAM 資訊,請參閱產生的 AWS CloudFormation 資源 AWS SAM

下表摘要說明資源屬性支援 AWS SAM,視以下例外狀況列出項目為準。

資源屬性 目標產生的資源

DependsOn

中繼資料 1, 2

僅基礎 AWS CloudFormation 產生的資源。如需有關資 AWS SAM 源與基底資源之間對映的 AWS CloudFormation 資訊,請參閱產生的 AWS CloudFormation 資源案例

條件

DeletionPolicy

UpdateReplacePolicy

來自對應 AWS CloudFormation 資源的所有產生 AWS SAM 資源。如需已產生 AWS CloudFormation 資源案例的相關資訊,請參閱產生的 AWS CloudFormation 資源案例

備註

  1. 如需將 Metadata resource 屬性與資源類型搭配使用的詳細AWS::Serverless::Function資訊,請參閱在 中使用自訂執行期建置 Lambda 函數 AWS SAM

  2. 如需將 Metadata resource 屬性與資源類型搭配使用的詳細AWS::Serverless::LayerVersion資訊,請參閱在中建置 Lambda 圖層 AWS SAM

例外狀況

先前描述的資源屬性規則有許多例外狀況:

  • 對於AWS::Lambda::LayerVersion, AWS SAM唯一的自訂欄位會RetentionPolicyDeletionPolicy為所產生的 AWS CloudFormation 資源設定。這具有比DeletionPolicy自己更高的優先級。如果兩者都不設定,則依預設DeletionPolicy會設定為Retain

  • 對於AWS::Lambda::Version,如果DeletionPolicy未指定,則預設值為Retain

  • 針對為無伺服器函數指定的案例,資源屬性不會複製到下列產生的 AWS CloudFormation 資源:DeploymentPreferences

    • AWS::CodeDeploy::Application

    • AWS::CodeDeploy::DeploymentGroup

    • 為此案例建立的AWS::IAM::RoleCodeDeployServiceRole

  • 如果您的 AWS SAM 範本包含多個具有隱含建立之 API 事件來源的函數,則這些函數將共用產生的AWS::ApiGateway::RestApi資源。在此案例中,如果函數具有不同的資源屬性,則針對產生的AWS::ApiGateway::RestApi資源,根據下列優先順序清單 AWS SAM 複製資源屬性:

    • UpdateReplacePolicy:

      1. Retain

      2. Snapshot

      3. Delete

    • DeletionPolicy:

      1. Retain

      2. Delete