本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS SAM 支持的资源属性
资源属性是可添加至 AWS SAM 和 AWS CloudFormation 资源以控制其他行为和关系的属性。有关资源属性的更多信息,请参阅《AWS CloudFormation 用户指南》中的资源属性引用。
AWS SAM 支持由 AWS CloudFormation 定义的资源属性的子集。在支持的资源属性中,有些仅复制到相应 AWS SAM 资源的基础生成的 AWS CloudFormation 资源中,有些则复制到由相应 AWS SAM 资源产生的所有生成的 AWS CloudFormation 资源中。有关从相应 AWS SAM 资源生成的 AWS CloudFormation 资源的更多信息,请参阅 为 AWS SAM 生成的 AWS CloudFormation 资源。
下表汇总了 AWS SAM 对资源属性的支持,具体视下方所列 异常 而定。
资源属性 | 目标生成的资源 |
---|---|
元数据 1, 2 |
仅基础 AWS CloudFormation 生成的资源。有关 AWS SAM 资源和基础 AWS CloudFormation 资源之间映射的信息,请参阅 生成的 AWS CloudFormation 资源场景。 |
所有从相应 AWS SAM 资源生成的 AWS CloudFormation 资源。有关生成 AWS CloudFormation 资源的场景的信息,请参阅 生成的 AWS CloudFormation 资源场景。 |
备注:
-
有关使用
Metadata
资源属性和AWS::Serverless::Function
资源类型的更多信息,请参阅 在中使用自定义运行时构建 Lambda 函数 AWS SAM。 -
有关使用
Metadata
资源属性和AWS::Serverless::LayerVersion
资源类型的更多信息,请参阅 在 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
-
-
如果您的 AWS SAM 模板包含多个带有隐式创建的 API 事件源的函数,则这些函数将共享生成的
AWS::ApiGateway::RestApi
资源。在这种情况下,如果函数具有不同的资源属性,则对于生成的AWS::ApiGateway::RestApi
资源,AWS SAM 将根据以下优先级列表复制资源属性:-
UpdateReplacePolicy
:-
Retain
-
Snapshot
-
Delete
-
-
DeletionPolicy
:-
Retain
-
Delete
-
-