0

当我尝试使用 aws-sdk-cpp 和 aws-sdk-sqs 创建/删除队列时出现以下错误:- error = {m_errorType=ACCESS_DENIED (15) m_exceptionName="AccessDenied" m_message="Access to the resource https: //sqs.ap-south-1.amazonaws.com/被拒绝。” ...}

我可以通过登录到亚马逊控制台来创建队列,但不能使用 api(aws-sdk-cpp 和 aws-sdk-sqs)来创建队列。我什至可以使用 api 从队列中发送和接收消息。但我无法使用 api 创建/删除队列。

我已使用以下链接作为参考:- https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/cpp/example_code/sqs/create_queue.cpp

以下是我的代码:-

void createqueue()
{   
    Aws::Client::ClientConfiguration  CliConfig;

    CliConfig.region = "ap-south-1";

    Aws::SQS::SQSClient sqs(CliConfig);

    Aws::SQS::Model::CreateQueueRequest cq_req;

    Aws::String queue_name = "asdf";
    cq_req.SetQueueName(queue_name);

    Aws::Auth::AWSCredentials("************", "*****************");

    auto cq_out = sqs.CreateQueue(cq_req);
    if (cq_out.IsSuccess())
    {
        std::cout << "Successfully created queue " << queue_name << std::endl;
    }
    else
    {
        std::cout << "Error creating queue " << queue_name << ": " <<
            cq_out.GetError().GetMessage() << std::endl;
    }
}
4

1 回答 1

0

用于创建或删除 SQS 队列的 AWS 凭证必须允许这些操作。

您的示例代码中定义的凭据无效。凭证可以传递给 SQSClient 构造函数,也可以按照https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/credentials.html中的描述进行定义

于 2019-05-24T23:42:49.913 回答