Testowanie Amazon SNS po HTTP

Witajcie,
Chciałbym przetestować subscription w Amazon SNS po HTTP.
Możliwości które znam są takie:

  1. Stunelować się przez EC2
  2. Puszczać sobie requesty lokalnie np. curlem

Pytanie do kogoś, kto już korzystał z subskrypcji do SNS w railsach - jaki jest najprostszy sposób na faktyczne przetestowanie.

Pozdr,
Kuba

Amazonudostepnia specjalne konta do testów. Z tego co pamiętam trzeba mieć serwis wystawiony na internet bo wszystko i st asynchroniczne i podajesz adres callbacka .

Jeżeli poczekasz do wtorku to wrzucę przykładowy kod. Jak zapłacisz to zrobię gema :slight_smile:

Dorwałem się do komputera (poprzedni wpis był z komórki dlatego dosyć krótki.

No więc ja używałem SNS jako część systemu do wysyłania maili - SES używa SNS do dostarczania informacji o dostarczeniu korespondencji.

Zacznij od tego: http://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html

Do testowania potrzebujesz wystawić aplikację na internet.

Z moich notatek:

Creating SNS topic:

Na koniec masz gista który pozwala spokojnie odbierać powiadomienia SNS, przetwarzanie pozostawiam ci do uzupełnienia bo nie wiem do czego planujesz SNS używać (otwórz na githubie, zauważyłem że forum cachuje, więc nie widać porpawek):

Dzięki za odpowiedzi, chociaż może źle się wyraziłem, to niekoniecznie o to mi chodziło :smile:

Kod do odbierania jest dosyć prosty do zrobienia, tu jeszcze brakuje sprawdzania podpisu notyfikacji, ale sam też go jeszcze nie zrobiłem, więc nie mogę uzupełnić.

Chodziło mi już bezpośrednio o test integracyjny. Narazie użyłem subskrypcji email-json, żeby wydobyć wiadomości od snsa, a następnie Postman do zrobienia requestu. Na stagingu sie okaże, czy działa :stuck_out_tongue:

W necie są sugestie, żeby do testowania stawiać instancję EC2, i stunelować port do lokalnej maszyny. Wtedy po ustawieniu subskrypcji na instancję widoczną wewnątrz AWS, dostajemy powiadomienia lokalnie. Wydaje mi się, że to jest overkill trochę.

Kombinowanie z mailem dla mnie lekki overkill.

Jeżeli mówimy o teście integracyjnym to ja bym stworzył po prostu plik z takim testem integracyjnym. Wysłał kupę zapytań używając Net/HTTPS i czekał na odpowiedzi.

# startujemy serwer rack, etc.
timeut = 30 * 60 # seconds
{ request => expected_response, r3 => er2, ... }.each do |request|
  Thread.new do 
    send_request_to_sns(request)
    sleep timeout
    check_if_we_got_response(response)
  end
end

cały test odpalamy na maszynie stagingowej/produkcyjnej i patrzymy co sie dzieje :smiley:

Dzieki za odpowiedzi! Wszystko poszlo dobrze poza tym, ze Amazon uzywa jsona jako text/plain :smile: