DeploymentPreference - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DeploymentPreference

指定启用逐步 Lambda 部署的配置。有关配置逐步 Lambda 部署的更多信息,请参阅 逐步部署无服务器应用程序

注意

要使用 DeploymentPreference 对象,必须在 AWS::Serverless::Function 中指定 AutoPublishAlias,否则将导致错误。

语法

要在您的 Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。

YAML

Alarms: List Enabled: Boolean Hooks: Hooks PassthroughCondition: Boolean Role: String TriggerConfigurations: List Type: String

属性

Alarms

您希望由部署引发的任何错误触发的 CloudWatch 警报列表。

此属性接受 Fn::If 内置函数。有关使用 Fn::If 的示例模板,请参阅本主题底部的“示例”部分。

类型:列表

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

Enabled

是否启用此部署首选项。

类型:布尔值

必需:否

默认值:True

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

Hooks

流量转移之前和之后运行的验证 Lambda 函数。

类型钩子

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

PassthroughCondition

如果为 True,并且启用了此部署首选项,则函数的条件将传递给生成的 CodeDeploy 资源。通常,应将其设置为 True。否则,即使函数的条件解析为 False,也会创建 CodeDeploy 资源。

类型:布尔值

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

Role

用于流量转移的 IAM 角色 ARN。 CodeDeploy 如有提供,则不会创建 IAM 角色。

类型:字符串

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

TriggerConfigurations

要与部署组关联的触发器配置列表。用于通知有关生命周期事件的 SNS 主题。

类型:列表

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::CodeDeploy::DeploymentGroup 资源的 TriggerConfigurations 属性。

Type

目前有两类部署类型:线性和金丝雀。有关可用部署类型的更多信息,请参阅 逐步部署无服务器应用程序

类型:字符串

必需:是

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

示例

DeploymentPreference 带有交通前后的挂钩。

包含流量前后钩子的部署首选项示例。

YAML

DeploymentPreference: Enabled: true Type: Canary10Percent10Minutes Alarms: - Ref: AliasErrorMetricGreaterThanZeroAlarm - Ref: LatestVersionErrorMetricGreaterThanZeroAlarm Hooks: PreTraffic: Ref: PreTrafficLambdaFunction PostTraffic: Ref: PostTrafficLambdaFunction

DeploymentPreference 使用 Fn:: If 内部函数

使用 Fn::If 配置警报的部署首选项示例。在本示例中,如果 MyConditiontrue,则将配置 Alarm1;如果 MyConditionfalse,则将配置 Alarm2Alarm5

YAML

DeploymentPreference: Enabled: true Type: Canary10Percent10Minutes Alarms: Fn::If: - MyCondition - - Alarm1 - - Alarm2 - Alarm5