Uso de colas de mensajes de Amazon SQS - AWS SDK para C++

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de colas de mensajes de Amazon SQS

Una cola de mensajes es el contenedor lógico que se utiliza para enviar mensajes de forma fiable en Amazon SQS. Existen dos tipos de colas: estándar y primero en entrar, primero en salir (FIFO). Para obtener más información sobre las colas y las diferencias entre estos tipos, consulte la Guía para desarrolladores de Amazon Simple Queue Service.

Estos ejemplos de C++ muestran cómo utilizar la AWS SDK para C++ para crear, enumerar, eliminar y obtener la URL de una cola de Amazon SQS.

Requisitos previos

Antes de empezar, le recomendamos que lea Cómo empezar a usar el. AWS SDK para C++

Descargue el código de ejemplo y cree la solución tal y como se describe enIntroducción a los ejemplos de código.

Para ejecutar los ejemplos, el perfil de usuario que utilice su código para realizar las solicitudes debe tener los permisos adecuados AWS (para el servicio y la acción). Para obtener más información, consulte Proporcionar AWS credenciales.

Creación de una cola

Utilice la función de CreateQueue miembro de la SQSClient clase y proporcione un CreateQueueRequestobjeto que describa los parámetros de la cola.

Incluye

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/CreateQueueRequest.h> #include <iostream>

Código

Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::CreateQueueRequest request; request.SetQueueName(queueName); const Aws::SQS::Model::CreateQueueOutcome outcome = sqsClient.CreateQueue(request); if (outcome.IsSuccess()) { std::cout << "Successfully created queue " << queueName << " with a queue URL " << outcome.GetResult().GetQueueUrl() << "." << std::endl; } else { std::cerr << "Error creating queue " << queueName << ": " << outcome.GetError().GetMessage() << std::endl; }

Consulte el ejemplo completo

Mostrar colas

Para enumerar las colas de Amazon SQS de su cuenta, llame a la función ListQueues miembro de la SQSClient clase y pásele un objeto. ListQueuesRequest

Incluye

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/ListQueuesRequest.h> #include <iostream>

Código

Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::ListQueuesRequest listQueuesRequest; Aws::String nextToken; // Used for pagination. Aws::Vector<Aws::String> allQueueUrls; do { if (!nextToken.empty()) { listQueuesRequest.SetNextToken(nextToken); } const Aws::SQS::Model::ListQueuesOutcome outcome = sqsClient.ListQueues( listQueuesRequest); if (outcome.IsSuccess()) { const Aws::Vector<Aws::String> &queueUrls = outcome.GetResult().GetQueueUrls(); allQueueUrls.insert(allQueueUrls.end(), queueUrls.begin(), queueUrls.end()); nextToken = outcome.GetResult().GetNextToken(); } else { std::cerr << "Error listing queues: " << outcome.GetError().GetMessage() << std::endl; return false; } } while (!nextToken.empty()); std::cout << allQueueUrls.size() << " Amazon SQS queue(s) found." << std::endl; for (const auto &iter: allQueueUrls) { std::cout << " " << iter << std::endl; }

Consulte el ejemplo completo

Obtén la URL de la cola

Para obtener la URL de una cola de Amazon SQS existente, llame a la función miembro de la SQSClient claseGetQueueUrl.

Incluye

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/GetQueueUrlRequest.h> #include <iostream>

Código

Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::GetQueueUrlRequest request; request.SetQueueName(queueName); const Aws::SQS::Model::GetQueueUrlOutcome outcome = sqsClient.GetQueueUrl(request); if (outcome.IsSuccess()) { std::cout << "Queue " << queueName << " has url " << outcome.GetResult().GetQueueUrl() << std::endl; } else { std::cerr << "Error getting url for queue " << queueName << ": " << outcome.GetError().GetMessage() << std::endl; }

Consulte el ejemplo completo

Eliminar una cola

Proporcione la URL de la función DeleteQueue miembro SQSClient de la clase.

Incluye

#include <aws/core/Aws.h> #include <aws/core/client/DefaultRetryStrategy.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/DeleteQueueRequest.h> #include <iostream>

Código

Aws::SQS::Model::DeleteQueueRequest request; request.SetQueueUrl(queueURL); const Aws::SQS::Model::DeleteQueueOutcome outcome = sqsClient.DeleteQueue(request); if (outcome.IsSuccess()) { std::cout << "Successfully deleted queue with url " << queueURL << std::endl; } else { std::cerr << "Error deleting queue " << queueURL << ": " << outcome.GetError().GetMessage() << std::endl; }

Consulte el ejemplo completo

Más información