2016-03-20 6 views
1

Ich habe eine Lambda-Funktion, die ich von der Client-Seite aufrufen möchte. Ich wollte das API-Gateway verwenden, aber mir fiel ein, dass die wartenden SNS-Funktionen nützlich sein könnten.AWS SNS Pubs aus dem Browser

Nach Recherchen scheint es die einzige Möglichkeit, SNS durch das Javscript SDK zu veröffentlichen, ist auth durch Google/Facebook oder AWS Cognito. Ich möchte, dass Benutzer (insbesondere Ereignisse) in der Lage sind, ohne Authentifizierung vorzustoßen, also ist das keine Option.

Die letzte Option besteht darin, einen AWS-Schlüssel hart zu codieren. Dies wird in den Dokumenten ziemlich ausdrücklich verhindert, aber nachdem ich es untersucht habe, sieht es so aus, als könnte ich Sicherheitsvorkehrungen für einen bestimmten Schlüssel erstellen und ihn auf die Veröffentlichung nur für ein Thema beschränken.

Mit anderen Worten, es würde angeblich eine REST-API nachahmen, oder?

Der einzige Nachteil, den ich mir vorstellen kann, ist böswilliges Spamming des SNS. Ich weiß, dass AWS API Rate-Throttling erlaubt, aber konnte etwas ähnliches auf SNS nicht finden.

So, 2 Verwandte Frage:

  1. Gibt es eine Möglichkeit bösartigen Spam zu einem SNS Thema zu verhindern?

  2. Gibt es andere Nachteile bei der Verwendung von SNS anstelle von AWS API zum Aufrufen von Lambda?

Antwort

2

Welche Warteschlangen möchten Sie von einem SNS-Thema bekommen? Ich denke, Sie können SNS mit SQS verwechseln.

Ich sehe keinen Vorteil zu SNS->Lambda in diesem Fall im Vergleich zu API->Lambda. Ich sehe jedoch einige Nachteile bei der Verwendung von SNS in diesem Fall, da es eine unnötige Komplikation hinzufügt und unnötige Sicherheitsrisiken eröffnet.

Sie profitieren buchstäblich nicht davon, SNS zu verwenden, während Sie mehrere Vorteile bei der Verwendung von API-Gateway, wie z. B. Ratenbegrenzung und Unterstützung von API-Schlüsseln, erhalten. Nicht zu vergessen, dass API-Gateway-Endpunkte sind viel einfacher auf den Browser als SNS Themen zugreifen. Dies ist die beabsichtigte Verwendung von API Gateway. Warum versuchen Sie, eine Methode mit SNS und fest codierten AWS-Schlüsseln zu kombinieren?

+0

Danksagung! Ich dachte an SNS, da SNS die Zustellung erneut versuchen wird, wenn ein Lambda-Aufruf aufgrund von Nebenläufigkeitsbeschränkungen oder anderen Ursachen für Ausführungsfehler zurückgeworfen wird. Ich habe mich geirrt, dass dies für SNS einzigartig war, obwohl es so aussieht, als würde Lambda selbst die Funktionen wiederholen und ein gewisses Maß an Ausführungsgarantie bieten. Letztendlich denke ich, dass dies nur eine vorzeitige Optimierung meiner Seite war. – Brandon