

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

# SNS
<a name="sam-property-function-sns"></a>

描述 `SNS` 事件源类型的对象。

如果设置了此事件类型，SAM 会生成 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html) 资源

## 语法
<a name="sam-property-function-sns-syntax"></a>

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

### YAML
<a name="sam-property-function-sns-syntax.yaml"></a>

```
  [FilterPolicy](#sam-function-sns-filterpolicy): [SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy)
  FilterPolicyScope: String
  RedrivePolicy: Json
  [Region](#sam-function-sns-region): String
  [SqsSubscription](#sam-function-sns-sqssubscription): Boolean | SqsSubscriptionObject
  [Topic](#sam-function-sns-topic): String
```

## Properties
<a name="sam-property-function-sns-properties"></a>

 `FilterPolicy`   <a name="sam-function-sns-filterpolicy"></a>
分配给订阅的筛选策略 JSON。有关更多信息，请参阅[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)《亚马逊简单通知服务 API 参考》。  
*类型*：[SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy)  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::SNS::Subscription`资源的`[FilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy)`属性。

 `FilterPolicyScope`   <a name="sam-function-sns-filterpolicyscope"></a>
此属性允许您使用以下字符串值类型之一来选择筛选范围：  
+ `MessageAttributes` – 筛选条件应用于消息属性。
+ `MessageBody` – 筛选条件应用于消息正文。
*类型*：字符串  
*必需*：否  
*默认值*：`MessageAttributes`  
*CloudFormation 兼容性*：此属性直接传递给`AWS::SNS::Subscription`资源的` [ FilterPolicyScope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicyscope)`属性。

 `RedrivePolicy`   <a name="sam-function-sns-redrivepolicy"></a>
指定后，将无法传输的消息发送到指定的 Amazon SQS 死信队列。由于客户端错误（例如，在无法访问订阅的端点时）或服务器错误（例如，在支持订阅的端点的服务变得不可用时）而无法传输的消息将保留在死信队列中，以进行进一步分析或重新处理。  
有关重新驱动策略和死信队列的更多信息，请参阅*《Amazon Simple Queue Service 开发人员指南》*中的 [Amazon SQS 死信队列](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)。  
*类型*：Json  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::SNS::Subscription`资源的`[ RedrivePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-redrivepolicy)`属性。

 `Region`   <a name="sam-function-sns-region"></a>
对于跨区域订阅，为主题所在的区域。  
如果未指定区域，则 CloudFormation 使用呼叫者的区域作为默认区域。  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性直接传递给`AWS::SNS::Subscription`资源的`[Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region)`属性。

 `SqsSubscription`   <a name="sam-function-sns-sqssubscription"></a>
将此属性设置为 true，或指定 `SqsSubscriptionObject` 以在 SQS 队列中启用批处理 SNS 主题通知。将此属性设置为 `true` 可创建新的 SQS 队列，而指定 `SqsSubscriptionObject` 则使用现有的 SQS 队列。  
*类型*：布尔值 \$1 [SqsSubscriptionObject](sam-property-function-sqssubscriptionobject.md)  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Topic`   <a name="sam-function-sns-topic"></a>
要订阅的主题的 ARN。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性直接传递给`AWS::SNS::Subscription`资源的`[TopicArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn)`属性。

## 示例
<a name="sam-property-function-sns--examples"></a>

### SNS 事件源示例
<a name="sam-property-function-sns--examples--sns-event-source-example"></a>

SNS 事件源示例

#### YAML
<a name="sam-property-function-sns--examples--sns-event-source-example--yaml"></a>

```
Events:
  SNSEvent:
    Type: SNS
    Properties:
      Topic: arn:aws:sns:us-east-1:123456789012:my_topic
      SqsSubscription: true
      FilterPolicy:
        store:
          - example_corp
        price_usd:
          - numeric:
              - ">="
              - 100
```

# SqsSubscriptionObject
<a name="sam-property-function-sqssubscriptionobject"></a>

为 SNS 事件指定现有 SQS 队列选项

## 语法
<a name="sam-property-function-sqssubscriptionobject-syntax"></a>

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

### YAML
<a name="sam-property-function-sqssubscriptionobject-syntax.yaml"></a>

```
  [BatchSize](#sam-function-sqssubscriptionobject-batchsize): String
  [Enabled](#sam-function-sqssubscriptionobject-enabled): Boolean
  [QueueArn](#sam-function-sqssubscriptionobject-queuearn): String
  [QueuePolicyLogicalId](#sam-function-sqssubscriptionobject-queuepolicylogicalid): String
  [QueueUrl](#sam-function-sqssubscriptionobject-queueurl): String
```

## Properties
<a name="sam-property-function-sqssubscriptionobject-properties"></a>

 `BatchSize`   <a name="sam-function-sqssubscriptionobject-batchsize"></a>
要在 SQS 队列单个批次中检索的最大项目数。  
*类型*：字符串  
*必需*：否  
*默认值*：10  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `Enabled`   <a name="sam-function-sqssubscriptionobject-enabled"></a>
禁用 SQS 事件源映射以暂停轮询和调用。  
*类型*：布尔值  
*必需*：否  
*默认值*：True  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `QueueArn`   <a name="sam-function-sqssubscriptionobject-queuearn"></a>
指定现有 SQS 队列 arn。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `QueuePolicyLogicalId`   <a name="sam-function-sqssubscriptionobject-queuepolicylogicalid"></a>
为资源提供一个自定义 LogicalID 名称。[AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html)  
*类型*：字符串  
*必需*：否  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

 `QueueUrl`   <a name="sam-function-sqssubscriptionobject-queueurl"></a>
指定与 `QueueArn` 属性关联的队列 URL。  
*类型*：字符串  
*是否必需*：是  
*CloudFormation 兼容性*：此属性是独有的 AWS SAM ，没有 CloudFormation 等效属性。

## 示例
<a name="sam-property-function-sqssubscriptionobject--examples"></a>

### SNS 事件的现有 SQS
<a name="sam-property-function-sqssubscriptionobject--examples--existing-sqs-for-sns-event"></a>

添加现有 SQS 队列以订阅 SNS 主题的示例。

#### YAML
<a name="sam-property-function-sqssubscriptionobject--examples--existing-sqs-for-sns-event--yaml"></a>

```
QueuePolicyLogicalId: CustomQueuePolicyLogicalId
QueueArn:
  Fn::GetAtt: MyCustomQueue.Arn
QueueUrl:
  Ref: MyCustomQueue
BatchSize: 5
```