Effizienter FTP-Server mit kurzer Lebensdauer bei AWS

1237
David Milanese

Ich habe eine Website für mein Unternehmen, die sich mit anderen Dienstleistungen in meiner Branche integriert. Die meisten dieser Dienste senden Dateien ausschließlich per FTP an ihre Partner. Wenn ich eine Datei per FTP erhalte, generiere ich eine API-Anfrage an den Server mit der Website (in diesem Fall dieselbe Maschine) und lösche dann die Datei auf dem FTP-Server.

Gibt es eine effiziente Möglichkeit, mit AWS Dateien über FTP zu empfangen und dann eine Anfrage zu generieren?

Ich bin daran interessiert, eine Art Serverlösung wie AWS Lambda zu verwenden, aber ich bin mir nicht sicher, ob es funktionieren würde oder wie man es angehen sollte.

Hinweis: Auf dem FTP-Server sind mehrere Benutzer vorhanden, die geringfügig unterschiedliche Anforderungen an den Server meiner Website generieren.

2
Sie können keinen FTP-Server ** auf einem ** Serverless-Dienst wie AWS Lambda ausführen. Wie definieren Sie "kurzes Leben"? Sind es 5 minuten 5 Stunden? mbaird vor 7 Jahren 0
Sie haben meine Frage jedoch nicht beantwortet. Wie lange dauert das im Allgemeinen, 5 Minuten oder 5 Stunden oder was? mbaird vor 7 Jahren 0
Sie können Lambda für diese Art von Setup nicht verwenden. Lambda-Funktionen werden in isolierten Containern auf von AWS verwalteten Servern ausgeführt. Sie haben keine Kontrolle über das Öffnen von Ports, damit externe Verbindungen in den Container hergestellt werden können. Dies wäre nur die erste Hürde, die es zu überwinden gilt. Fishizzle vor 7 Jahren 0
OK. Wenn ich den Lambda-Service beiseite lege, ist meine einzige Option eine EC2-Instanz? David Milanese vor 7 Jahren 0
weniger als 5 Minuten David Milanese vor 7 Jahren 0
Kurzfristig möchte ich, dass der Server / Dienst für die Dauer des Empfangs des Uploads und des Generierens der Anfrage vorhanden ist. Es hat keine andere Funktion. David Milanese vor 7 Jahren 0
@DavidMilanese Haben Sie das jemals geklärt? Ich kann mir vorstellen, dass Sie dies für aktive Uploads tun können, aber keine passiven Uploads. Dies setzt auch voraus, dass die FTP-Clients nicht unbedingt erfordern, dass Sie Verbindungen von Port 20 aus öffnen. Jayen vor 6 Jahren 0
@Jayden, ich beendete die Bereitstellung eines Docker-Service basierend auf dem Image _pure-ftpd_. Wenn meine serverlosen Funktionen dann auf Änderungen in bestimmten Verzeichnissen des Containers in der Datei warten, wenn eine neue Datei eintrifft. Leider muss ich ftp im passiven Modus betreiben. David Milanese vor 6 Jahren 0

1 Antwort auf die Frage

0
John Rotenstein

Serverless ist auf Ihre Situation nicht anwendbar, weil Sie speziell das FTP-Protokoll ausführen möchten.

Ohne die Verwendung von FTP gibt es viele kostengünstige Optionen, z. B. das direkte Hochladen auf Amazon S3 oder das Anrufen von AWS Lambda über das API-Gateway.

Da Sie FTP ausführen möchten, benötigen Sie einen Server. Sie könnten dies wahrscheinlich von einer Amazon EC2- t2.nanoInstanz aus tun, die äußerst kostengünstig ist. Verfügen Sie über ein kleines Skript, das das Upload-Verzeichnis überwacht, das Maßnahmen ausführt, wenn eine Datei angezeigt wird.