OnFailure - AWS Serverless Application Model

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

OnFailure

处理失败的事件的目标。

语法

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

YAML

Destination: String Type: String

属性

Destination

目标资源的 Amazon Resource Name (ARN)。

类型:字符串

必需:条件

CloudFormation 兼容性:此属性类似于 AWS::Lambda::EventInvokeConfig 资源的 OnFailure 属性。SAM 将向与该函数关联的自动生成的 IAM 角色添加任何必要的权限,以访问此属性中引用的资源。

附加说明:如果类型为 Lambda/EventBridge,则 Destination 为必需。

Type

目标中引用的资源类型。支持的类型有 SQSSNSS3LambdaEventBridge

类型:字符串

必需:否

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

附加说明:如果类型为 SQS/SNS 且 Destination 属性留空,则 SQS/SNS 资源将由 SAM 自动生成。要引用该资源,请使用 <function-logical-id>.DestinationQueue(对于 SQS)或 <function-logical-id>.DestinationTopic(对于 SQS)。如果类型为 Lambda/EventBridge,则 Destination 为必需。

示例

带有 SQS 和 Lambda 目标的 EventInvoke 配置示例

在此示例中,没有为 SQS OnSuccess 配置提供 Destination,因此 SAM 隐式创建了一个 SQS 队列并添加了所有必要的权限。同样在本示例中,模板文件中声明的 Lambda 资源的 Destination 是在 OnFailure 配置中指定的,因此 SAM 向此 Lambda 函数添加必要的权限以调用目标 Lambda 函数。

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SQS OnFailure: Type: Lambda Destination: !GetAtt DestinationLambda.Arn # Arn of a Lambda function declared in the template file.

带有 SNS 目标的 EventInvoke 配置示例

在此示例中,为在 OnSuccess 配置的模板文件中声明的 SNS 主题提供了 Destination。

YAML

EventInvokeConfig: DestinationConfig: OnSuccess: Type: SNS Destination: Ref: DestinationSNS # Arn of an SNS topic declared in the tempate file