

La version 4 (V4) du AWS SDK pour .NET est sortie \$1

Pour plus d'informations sur les modifications majeures et la migration de vos applications, consultez la [rubrique relative à la migration](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)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Suppression des files d'attente Amazon SQS
<a name="DeleteSqsQueue"></a>

Cet exemple vous montre comment utiliser le pour AWS SDK pour .NET supprimer une file d'attente Amazon SQS. L'application supprime la file d'attente, attend qu'elle disparaisse pendant un certain temps, puis affiche la liste des files d'attente restantes.

Si vous ne fournissez aucun argument de ligne de commande, l'application affiche simplement une liste des files d'attente existantes.

Les sections suivantes fournissent des extraits de cet exemple. Le [code complet de l'exemple](#DeleteSqsQueue-complete-code) est affiché ensuite et peut être créé et exécuté tel quel.

**Topics**
+ [Supprimer la file d'attente](#DeleteSqsQueue-delete-queue)
+ [Attendez que la file d'attente soit terminée](#DeleteSqsQueue-wait)
+ [Afficher la liste des files d'attente existantes](#DeleteSqsQueue-list-queues)
+ [Code complet](#DeleteSqsQueue-complete-code)
+ [Considérations supplémentaires](#DeleteSqsQueue-additional)

## Supprimer la file d'attente
<a name="DeleteSqsQueue-delete-queue"></a>

L'extrait suivant supprime la file d'attente identifiée par l'URL de file d'attente donnée.

L'exemple [à la fin de cette rubrique](#DeleteSqsQueue-complete-code) montre cet extrait en cours d'utilisation.

```
    //
    // Method to delete an SQS queue
    private static async Task DeleteQueue(IAmazonSQS sqsClient, string qUrl)
    {
      Console.WriteLine($"Deleting queue {qUrl}...");
      await sqsClient.DeleteQueueAsync(qUrl);
      Console.WriteLine($"Queue {qUrl} has been deleted.");
    }
```

## Attendez que la file d'attente soit terminée
<a name="DeleteSqsQueue-wait"></a>

L'extrait suivant attend la fin du processus de suppression, ce qui peut prendre 60 secondes.

L'exemple [à la fin de cette rubrique](#DeleteSqsQueue-complete-code) montre cet extrait en cours d'utilisation.

```
    //
    // Method to wait up to a given number of seconds
    private static async Task Wait(
      IAmazonSQS sqsClient, int numSeconds, string qUrl)
    {
      Console.WriteLine($"Waiting for up to {numSeconds} seconds.");
      Console.WriteLine("Press any key to stop waiting. (Response might be slightly delayed.)");
      for(int i=0; i<numSeconds; i++)
      {
        Console.Write(".");
        Thread.Sleep(1000);
        if(Console.KeyAvailable) break;

        // Check to see if the queue is gone yet
        var found = false;
        ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
        foreach(var url in responseList.QueueUrls)
        {
          if(url == qUrl)
          {
            found = true;
            break;
          }
        }
        if(!found) break;
      }
    }
```

## Afficher la liste des files d'attente existantes
<a name="DeleteSqsQueue-list-queues"></a>

L'extrait suivant présente une liste des files d'attente existantes dans la région du client SQS.

L'exemple [à la fin de cette rubrique](#DeleteSqsQueue-complete-code) montre cet extrait en cours d'utilisation.

```
    //
    // Method to show a list of the existing queues
    private static async Task ListQueues(IAmazonSQS sqsClient)
    {
      ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
      Console.WriteLine("\nList of queues:");
      foreach(var qUrl in responseList.QueueUrls)
        Console.WriteLine($"- {qUrl}");
    }
```

## Code complet
<a name="DeleteSqsQueue-complete-code"></a>

Cette section présente les références pertinentes et le code complet de cet exemple.

### Références du SDK
<a name="w2aac19c15c29c21c25b5b1"></a>

NuGet colis :
+ [AWSSDK.SQS](https://www.nuget.org/packages/AWSSDK.SQS)

Éléments de programmation :
+ [Espace de noms Amazon.sqs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SQS/NSQS.html)

  Classe [Amazon SQSClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SQS/TSQSClient.html)
+ [Espace de noms Amazon.SQS.Model](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SQS/NSQSModel.html)

  Classe [ListQueuesResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SQS/TListQueuesResponse.html)

### Le code
<a name="w2aac19c15c29c21c25b7b1"></a>

```
using System;
using System.Threading;
using System.Threading.Tasks;
using Amazon.SQS;
using Amazon.SQS.Model;

namespace SQSDeleteQueue
{
  // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  // Class to update a queue
  class Program
  {
    private const int TimeToWait = 60;

    static async Task Main(string[] args)
    {
      // Create the Amazon SQS client
      var sqsClient = new AmazonSQSClient();

      // If no command-line arguments, just show a list of the queues
      if(args.Length == 0)
      {
        Console.WriteLine("\nUsage: SQSCreateQueue queue_url");
        Console.WriteLine("   queue_url - The URL of the queue you want to delete.");
        Console.WriteLine("\nNo arguments specified.");
        Console.Write("Do you want to see a list of the existing queues? ((y) or n): ");
        var response = Console.ReadLine();
        if((string.IsNullOrEmpty(response)) || (response.ToLower() == "y"))
          await ListQueues(sqsClient);
        return;
      }

      // If given a queue URL, delete that queue
      if(args[0].StartsWith("https://sqs."))
      {
        // Delete the queue
        await DeleteQueue(sqsClient, args[0]);
        // Wait for a little while because it takes a while for the queue to disappear
        await Wait(sqsClient, TimeToWait, args[0]);
        // Show a list of the remaining queues
        await ListQueues(sqsClient);
      }
      else
      {
        Console.WriteLine("The command-line argument isn't a queue URL:");
        Console.WriteLine($"{args[0]}");
      }
    }


    //
    // Method to delete an SQS queue
    private static async Task DeleteQueue(IAmazonSQS sqsClient, string qUrl)
    {
      Console.WriteLine($"Deleting queue {qUrl}...");
      await sqsClient.DeleteQueueAsync(qUrl);
      Console.WriteLine($"Queue {qUrl} has been deleted.");
    }


    //
    // Method to wait up to a given number of seconds
    private static async Task Wait(
      IAmazonSQS sqsClient, int numSeconds, string qUrl)
    {
      Console.WriteLine($"Waiting for up to {numSeconds} seconds.");
      Console.WriteLine("Press any key to stop waiting. (Response might be slightly delayed.)");
      for(int i=0; i<numSeconds; i++)
      {
        Console.Write(".");
        Thread.Sleep(1000);
        if(Console.KeyAvailable) break;

        // Check to see if the queue is gone yet
        var found = false;
        ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
        foreach(var url in responseList.QueueUrls)
        {
          if(url == qUrl)
          {
            found = true;
            break;
          }
        }
        if(!found) break;
      }
    }


    //
    // Method to show a list of the existing queues
    private static async Task ListQueues(IAmazonSQS sqsClient)
    {
      ListQueuesResponse responseList = await sqsClient.ListQueuesAsync("");
      Console.WriteLine("\nList of queues:");
      foreach(var qUrl in responseList.QueueUrls)
        Console.WriteLine($"- {qUrl}");
    }
  }
}
```

## Considérations supplémentaires
<a name="DeleteSqsQueue-additional"></a>
+ L'appel `DeleteQueueAsync` d'API ne vérifie pas si la file d'attente que vous supprimez est utilisée comme file d'attente de lettres mortes. Une procédure plus sophistiquée pourrait vérifier cela.
+ Vous pouvez également consulter la liste des files d'attente et les résultats de cet exemple dans la console [Amazon SQS](https://console.aws.amazon.com/sqs).