2017-12-01 7 views
0

Ich versuche, eine Nachricht zu einem Thema mit dem AWS SNSClient aus dem C++ SDK zu veröffentlichen.AWS SNSClient veröffentlichen Anruf konnte Endpunkt nicht erreichen

Kann mir jemand helfen, einen Weg zu finden, um herauszufinden, was mit meinem Ansatz falsch ist? Die Fehlermeldung, die ich bekomme, sagt nur, dass der "Endpunkt nicht erreicht werden konnte".

Ich versuche, herauszufinden, wo meine Anfrage hängt - in meiner Sicht ist es eine der folgenden sein:

  • der Docker Container der C++ App ausgeführt wird, die Anfragen blockiert irgendwie (neu Andockfenster)
  • der Client falsch konfiguriert ist (Region, arn, creditials falsch?)
  • die Anforderung ungültig ist (einige Parameter nicht? Nachrichtentyp vielleicht?)

einige Does Einer weiß, wie ich meine Anfrage debuggen und sehen kann, was das Problem ist?

Danke! Mein Code sieht so etwas wie diese (api init und Herunterfahren entfällt):

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

Antwort

2

Meine Vermutung, ohne den Code in der Lage zu sehen, dass Sie die richtige Region nicht angegeben haben. Wenn Ihr Code für ein paar Sekunden hängt, ist dies wahrscheinlich das Problem.

eine Codezeile wie folgt hinzufügen, bevor Sie erstellen die SNS-Client:

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

So aktivieren Sie diese Zeile Debuggen hinzufügen, bevor Aws :: InitAPI (Optionen)

options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug; 

Die Header für die Protokollierung :

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

Dann können Sie die Protokolldatei überprüfen, die generiert wird. Es beginnt mit "aws_sdk"

Ich benutze Visual Studio, also ziehe ich es vor, in den Code zu gehen, um herauszufinden, was falsch ist. Manchmal ist es einfacher, die Logdatei zu überprüfen.

Verwandte Themen