AWS C++
Overview
Section titled “Overview”The AWS SDK for C++, like other AWS SDKs, lets you set the endpoint when creating resource clients, which is the preferred way of integrating the C++ SDK with LocalStack.
Example
Section titled “Example”Consider the following example, which creates an SQS queue, sends a message to it, then receives the same message via the SDK:
#include <iostream>#include <aws/core/Aws.h>#include <aws/core/utils/logging/LogLevel.h>#include <aws/sqs/SQSClient.h>#include <aws/sqs/model/CreateQueueRequest.h>#include <aws/sqs/model/SendMessageRequest.h>#include <aws/sqs/model/ReceiveMessageRequest.h>#include <aws/sqs/model/DeleteMessageRequest.h>
using namespace Aws;
int main(){    // initialize AWS SDK    SDKOptions options;    options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;    InitAPI(options);
    // create SQS client with local endpoint configuration    Aws::Client::ClientConfiguration clientConfig;    clientConfig.endpointOverride = "http://localhost:4566";    SQS::SQSClient client = SQS::SQSClient(clientConfig);
    // create queue    std::cout << "Creating queue ..." << std::endl;    Aws::SQS::Model::CreateQueueRequest cqReq;    cqReq.SetQueueName("test-queue");    auto cqRes = client.CreateQueue(cqReq);    auto queueUrl = cqRes.GetResult().GetQueueUrl();
    // send message    std::cout << "Sending message ..." << std::endl;    Aws::SQS::Model::SendMessageRequest smReq;    smReq.SetQueueUrl(queueUrl);    smReq.SetMessageBody("test message 123");    client.SendMessage(smReq);
    // receive message    std::cout << "Receiving message ..." << std::endl;    Aws::SQS::Model::ReceiveMessageRequest rmReq;    rmReq.SetQueueUrl(queueUrl);    auto rmRes = client.ReceiveMessage(rmReq);    const auto& messages = rmRes.GetResult().GetMessages();    std::cout << "Received " << messages.size() << " messages from queue " << queueUrl << std::endl;
    // print message    const auto& message = messages[0];    std::cout << "Received message:" << std::endl;    std::cout << "  MessageId: " << message.GetMessageId() << std::endl;    std::cout << "  ReceiptHandle: " << message.GetReceiptHandle() << std::endl;    std::cout << "  Body: " << message.GetBody() << std::endl;
    // delete message    std::cout << "Deleting message ..." << std::endl;    Aws::SQS::Model::DeleteMessageRequest dmReq;    dmReq.SetQueueUrl(queueUrl);    dmReq.SetReceiptHandle(message.GetReceiptHandle());    auto dmRes = client.DeleteMessage(dmReq);    std::cout << "Delete message success result: " << dmRes.IsSuccess() << std::endl;
    // shut down the SDK    ShutdownAPI(options);    return 0;}Once compiled, we’ll see the following output when running the application:
Creating queue ...Sending message ...Receiving message ...Received 1 messages from queue http://localhost:4566/000000000000/test-queueReceived message:  MessageId: 4731b327-49b2-4410-a8da-2c479e7bde04  ReceiptHandle: ZTQ1M2Q1ZjYtMjBkZS00ODQxLTlkYzQtMjBlMGQ4MDNkODVkIGFybjphd3M6c3FzOnVzLWVhc3QtMTowMDAwMDAwMDAwMDA6dGVzdC1xdWV1ZSA0NzMxYjMyNy00OWIyLTQ0MTAtYThkYS0yYzQ3OWU3YmRlMDQgMTY3ODIxMjExMS42ODk1NTE=  Body: test message 123Deleting message ...Delete message success result: 1