Ich entschuldige mich im Voraus für eine Antwort, die nicht direkt die Frage beantwortet, und stattdessen schlägt vor, dass Sie einen anderen Ansatz ... aber in der Frage und Kommentare und meine eigene Erfahrung mit dem, was ich glaube, zu übernehmen Wenn Sie eine ähnliche Anwendung verwenden, scheint es, als ob Sie das falsche Tool für das Problem verwenden oder zumindest ein Tool, das nicht die optimale Wahl innerhalb des AWS-Ökosystems ist.
Wenn Ihr Image-Dienst innerhalb von Amazon Lambda ausgeführt wird, wäre der Bedarf an API Gateway offensichtlich. Das fehlt mir, ich sehe es nicht.
Amazon CloudFront bietet das Abrufen von Inhalten von einem Back-End-Server, das Zwischenspeichern von Inhalten (an über 50 "Edge" -Standorten), die kostenlose Speicherung von zwischengespeicherten Inhalten und die Konfiguration von bis zu 100 verschiedenen Hostnamen zu einer einzelnen Cloudfront-Verteilung, zusätzlich zum Standard-Hostnamen xxxxxxxx.cloudfront.net
. Es unterstützt auch SSL. Das scheint zu sein, was du versuchst, und dann einige.
Ich benutze es, ziemlich erfolgreich für genau das Szenario, das Sie beschreiben: "ein Proxy vor einem Image-Service." Genau das, was mein Image-Service und dein Image-Service tun können (mein Resizer kann die Quell-URL von fehlenden/nie zuvor angeforderten Bildern abrufen, abrufen und in der Größe verändern), aber im Grunde scheint es, als würden wir einen ähnlichen Zweck erfüllen .
Seltsamerweise ist die Preisstruktur von CloudFront in einigen Regionen (wie us-east-1 und us-west-2) so, dass es nicht nur kostengünstig ist, sondern in der Tat mit CloudFront fast $ 0,005 billiger sein kann als es nicht verwendet pro Gigabyte heruntergeladen.
In meinem Fall habe ich neben dem Back-End-Image-Service auch einen S3-Bucket mit einer einzigen Datei, die an einen einzelnen Pfad in der CloudFront-Distribution angehängt ist (als zweiten "benutzerdefinierten Ursprung"). zum alleinigen Zweck, /robots.txt
zu servieren, um den direkten Zugriff auf meine Bilder durch brave Crawler zu kontrollieren. Dadurch kann die robots.txt-Datei getrennt vom Image-Service selbst verwaltet werden.
Wenn dies nicht Ihren Bedürfnissen entspricht, zögern Sie nicht zu kommentieren und ich werde diese Antwort klären oder zurückziehen.
Warum API-Gateway? Ihr Image-Service läuft in Lambda? Auch der Inhaltstyp "Quelle"? Vermutlich beziehen Sie sich auf die "Antwort". –
Gibt es einen bestimmten Grund, dass das Bild von Lambda zurückgegeben werden muss? Eine Alternative wäre, dass die Lambda-Funktion das Bild in S3 hochlädt und eine Verknüpfung zu diesem Bild zurückgibt. – JaredHatfield
@ Michael-sqlbot: Ich könnte einen Proxy mit etwas anderem hochwerfen, aber dann müsste ich es beibehalten. AWS kann vermutlich mit jeder Last umgehen, die ich darauf werfen könnte. Außerdem könnte das Caching nützlich sein. Die Notwendigkeit für einen Proxy in erster Linie ist Google-Suche Assets auf meiner Seite als von meinem Unternehmen anderen Service (SEO Typ sagt, dass sie denken, wir sind Scraping). Wir müssen die gleichen Assets verwenden, also möchte ich nur, dass sie so aussehen, als wären sie von einer anderen Adresse. Kein Lambda/Manipulation für dieses Ding benötigt, nur ein Proxy. Wenn Sie einen anderen Service empfehlen können, würde ich es überprüfen. – kjs3