本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
资源属性
资源属性是可添加至 AWS SAM 和 AWS CloudFormation 资源以控制其他行为和关系的属性。有关资源属性的更多信息,请参阅《AWS CloudFormation 用户指南》中的资源属性引用。
AWS SAM 支持由 AWS CloudFormation 定义的资源属性的子集。在支持的资源属性中,有些仅复制到相应 AWS SAM 资源的基础生成的 AWS CloudFormation 资源中,有些则复制到由相应 AWS SAM 资源产生的所有生成的 AWS CloudFormation 资源中。有关从相应 AWS SAM 资源生成的 AWS CloudFormation 资源的更多信息,请参阅 生成的 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
资源类型的更多信息,请参阅 构建自定义运行时系统。 -
有关使用
Metadata
资源属性和AWS::Serverless::LayerVersion
资源类型的更多信息,请参阅 构建层。
异常
前面描述的资源属性规则有许多例外情况:
-
对于
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
-
-