Amazon SQSキューの削除 - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SQSキューの削除

この例では、 AWS SDK for .NET を使用して Amazon SQSキューを削除する方法を示します。アプリケーションはキューを削除し、キューがなくなるまで一定時間待ってから、残っているキューのリストを表示します。

コマンドライン引数を何も指定しない場合、アプリケーションは単に既存のキューのリストを表示します。

以下のセクションでは、この例のスニペットを確認できます。その下には、この例のコードの全文が示されており、そのままビルドして実行できます。

キューの削除

次のスニペットは、指定されたキュー によって識別されたキューを削除しますURL。

このトピックの最後で、スニペットが実際に使用されている例を確認できます。

// // 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."); }

キューがなくなるまで待機

次のスニペットでは、削除プロセスが完了するまで待機します。この処理には 60 秒かかる場合があります。

このトピックの最後で、スニペットが実際に使用されている例を確認できます。

// // 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; } }

既存のキューのリストの表示

次のスニペットは、SQSクライアントのリージョンにある既存のキューのリストを示しています。

このトピックの最後 で、スニペットが実際に使用されている例を確認できます。

// // 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}"); }

コード全文

このセクションでは、例に関連する参考資料とコードの全文を示します。

NuGet パッケージ:

プログラミング要素:

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}"); } } }

追加の考慮事項

  • このDeleteQueueAsyncAPI呼び出しでは、削除しているキューがデッドレターキューとして使用されているかどうかは確認されません。チェックするには、より高度な手順が必要になります。