0

Ich benutze das Serverless-Framework, um Lambda-Funktionen mit dem node.js-Backend zu erstellen, das das fcm-Push-Paket verwendet.AWS Serverless Framework Nodejs Push-Benachrichtigung

Gewünschte Vorlauf: Anruf api von Handy-App -> api verwendet fcm-Push-Paket, um die Nutzlast/message/registration Token Firebase Wolke messsaging zu senden -> sendet Push-Benachrichtigung auf Android und iOS-Geräte

Dies funktioniert perfekt, wenn ich die API lokal mit "serverless invoke lokal ..."

Allerdings, wenn ich "serverless deploy" und drücken Sie den API-Endpunkt von mobilen App ODER einen Rest-Client wie Postman, der API-Anruf abläuft, Ich habe das Timeout auf 45 Sekunden geändert und immer noch keine Zeit. Um Fehler zu beheben, entfernte ich alle fcm verwandten Code von der API, um zu sehen, ob API eine Antwort zurückgibt, während von Mobile App/Postman Schlagen. Es tut. Es scheint also, als würde AWS die API daran hindern, einen Anruf an fcm zu tätigen, und der Anruf dauert an, bis die Zeit abgelaufen ist.

Ich bin nicht sicher, was ich kann, dies zu umgehen tun, wie ich ziemlich neu bin AWS zu verwenden, so würde jede Eingabe hilfreich sein

+0

Überprüfen Sie einmal Ihre Sicherheitsgruppe Bond-Regeln. Es kann mit Firewall-Sache verwandt sein. – Murali

+0

@Murali wo auf der Konsole kann ich die ausgehenden Regeln überprüfen? – yellowmonkey

+0

Funktioniert Ihre Lambda-Funktion in einem vPC? Wenn ja, müssen Sie den Internetzugriff mithilfe einer NAT-Instanz oder eines NAT-Gateways aktivieren. Dies ist in den Lambda-Dokumenten angegeben. http://docs.aws.amazon.com/lambda/latest/dg/vpc.html#vpc-internet – user818510

Antwort

0

Wenn Sie API-Gateway als API-Endpunkt verwenden, die mit einem Lambda verbunden ist Funktion, dann müssen Sie die Körper Vorlage im API-Gateway selbst angeben. Stellen Sie sicher, dass Sie die Werte Ihrer Lambda-Funktion abrufen können, die Sie über den REST-API-Aufruf an Ihr API-Gateway gesendet haben.

Finden Sie die link zu dieser Antwort, die ich früher schrieb, um das gleiche zu erreichen.

+0

Mein Problem ist nicht auf den API-Endpunkt zugreifen, das Problem ist, wenn Sie den Endpunkt von Mobile/Postman nach "serverless deploy": Der Code in der API kann Firebase Cloud Messaging nicht mit fcm-push aufrufen, um Push-Benachrichtigungen zu senden. Wenn ich diese API lokal anrufe, wird die Push-Benachrichtigung einwandfrei gesendet. – yellowmonkey

+0

Verwenden Sie das ** Firebase Web SDK ** oder ** Firebase Admin SDK **? Das ** Firebase Admin SDK ** soll auf vertrauenswürdigen Geräten ausgeführt werden, z. B. auf einem Node.js-Server, den Sie hosten. Das ** Firebase Web SDK ** richtet sich an clientseitige Geräte wie Browser und Node.js IoT-Geräte. – Sudip

Verwandte Themen