Für ein Projekt, an dem ich gerade arbeite, muss eine größere Textdatei heruntergeladen werden, die täglich aktualisiert und verfügbar gemacht wird eine spezifische Kunden-URL, und speichern Sie sie in AWS S3, die dann die Downstream-Verarbeitung der Datei auslöst (Details unwichtig).Ratschläge zum Herunterladen einer großen Datei von einem bandbreitenbeschränkten Server in einen AWS S3-Bucket
Ich dachte daran, den Download + Store in S3 von einem AWS Lambda alle 24 Stunden von CloudWatch ausgelöst, was funktionieren würde, aber es gibt einen Haken: Die Datei ist 36MB groß und wird von einem Host bedient, der drosselt Downloads auf 100kB/s (außerhalb meiner Kontrolle). Dies bedeutet, dass mindestens 360 Sekunden (d. H. 6 Minuten) benötigt werden, um die Datei vollständig herunterzuladen. AWS Lambda-Funktionen haben jedoch eine Obergrenze von 300s Laufzeit, was es effektiv unmöglich macht, für diese Aufgabe als das Lambda-Zeitlimit zu verwenden und zu beenden, bevor die Datei vollständig heruntergeladen ist.
Ich bin auf der Suche nach Vorschlägen für die Arbeit um das 300s Laufzeitlimit von AWS Lambda, um dieses Ziel zu erreichen. Wenn ich bei AWS bleibe, ist die einzige Alternative, die ich sehe, einen Cron-Job auf einer EC2-Instanz einzurichten, aber das scheint teuer/übertrieben zu sein, besonders wenn ich am Ende keine ständig aktive EC2 benötige für alles andere.
Danke!
Haben Sie in Betracht gezogen, die Textdatei zu komprimieren, um ihre Größe zu reduzieren? –
@TimChild, das war natürlich mein erster Gedanke aber leider nein, die Datei wird von einer Drittpartei und nur als Textdatei zur Verfügung gestellt. – Jupiterese
@stdunbar, danke das klingt wie ein großartiger Vorschlag und ich habe es als Beantwortung meiner Frage markiert. Ich habe ein wenig mehr recherchiert und eine AWS Knowledge Center-Seite gefunden, die das Stoppen und Neustarten von EC2-Instanzen über Lambda beschreibt: https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/ – Jupiterese