AWS SNSClient 发布调用无法到达端点

AWS SNSClient publish call could not reach endpoint

我正在尝试使用来自 c++ SDK 的 AWS SNSClient 向主题发布消息。

有人可以帮助我找到一种方法来找出我的方法有什么问题吗?我收到的错误消息只说 "endpoint could not be reached".

我正在尝试找出我的请求挂起的位置 - 在我看来,它可能是以下之一:

有人知道如何调试我的请求并查看问题所在吗?

谢谢!我的代码看起来像这样(省略了 api init 和 shutdown):

Aws::SNS::SNSClient client(credentials , config);
Aws::SNS::Model::PublishRequest pubReq;
pubReq.SetTopicArn("...");
pubReq.SetMessage("Test message");

pubOutcome = client.Publish(pubReq);

if(! pubOutcome.IsSuccess() ){
    std::cout << "outcome: " << pubOutcome.GetError().GetMessage() << std::endl;
}

我无法看到您的代码,我的猜测是您没有指定正确的区域。如果您的代码挂起几秒钟,那么这很可能是问题所在。

在创建 SNS 客户端之前添加一行这样的代码:

config.region = "us-west-2";

要启用调试,请在 Aws::InitAPI(选项)

之前添加此行
options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug;

记录头:

#include <aws/core/utils/logging/DefaultLogSystem.h>
#include <aws/core/utils/logging/AWSLogging.h>

然后您可以查看生成的日志文件。它将以 "aws_sdk"

开头

我用的是Visual Studio,所以我更喜欢单步执行代码找出问题所在。有时查看日志文件更简单。