

的版本 4 (V4) 适用于 .NET 的 AWS SDK 已经发布！

有关重大更改和迁移应用程序的信息，请参阅[迁移主题](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)。

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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

# 将 FIFO 与适用于.NET 的 AWS 消息处理框架配合使用
<a name="msg-proc-fw-fifo"></a>

[对于消息排序和消息重复数据删除至关重要的用例，.NET AWS 消息处理框架支持 first-in-first-out (FIFO) [Amazon SQS 队列和 Amazon SNS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queues.html) 主题。](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html)

## 发布
<a name="mpf-fifo-publish"></a>

将消息发布到 FIFO 队列或主题时，必须设置消息组 ID，该标识指定消息所属的组。群组内的消息按顺序处理。您可以在特定于 SQS 和 SNS 特定的消息发布器上进行此设置。

```
await _sqsPublisher.PublishAsync(message, new SQSOptions
{
    MessageDeduplicationId = <message-deduplication-id>,
    MessageGroupId = <message-group-id>
});
```

## 订阅
<a name="mpf-fifo-subscribe"></a>

处理来自 FIFO 队列的消息时，框架会按照每次`ReceiveMessages`调用的接收顺序处理给定消息组中的消息。当配置了以结尾的队列时，框架会自动进入此操作模式`.fifo`。

```
await Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        // Register the AWS Message Processing Framework for .NET.
        services.AddAWSMessageBus(builder =>
        {
            // Because this is a FIFO queue, the framework automatically handles these messages in order.
            builder.AddSQSPoller("https://sqs.us-west-2.amazonaws.com/012345678910/MPF.fifo");
            builder.AddMessageHandler<OrderMessageHandler, OrderMessage>();
        });
    })
    .Build()
    .RunAsync();
```