Z góry przepraszam za udzielenie odpowiedzi, która nie odpowiada bezpośrednio na pytanie, a zamiast tego sugeruje przyjęcie innego podejścia ... ale opartego na pytaniu i komentarzach oraz moich własnych doświadczeń z tym, w co wierzę być podobną aplikacją, wygląda na to, że używasz niewłaściwego narzędzia do problemu lub przynajmniej narzędzia, które nie jest optymalnym wyborem w ekosystemie AWS.
Jeśli Twoja usługa wizerunkowa działała w Amazon Lambda, bardziej potrzebna byłaby bramka API. Nieobecny, nie widzę tego.
Amazon CloudFront zapewnia pobieranie treści z serwera zaplecza, buforowanie treści (w ponad 50 lokalizacjach "krawędzi" na całym świecie), brak opłat za przechowywanie treści w pamięci podręcznej i umożliwia skonfigurowanie do 100 różnych nazw hostów wskazujących do pojedynczej dystrybucji Cloudfront, oprócz domyślnej nazwy hosta xxxxxxxx.cloudfront.net
. Obsługuje również protokół SSL. Wygląda na to, co próbujesz zrobić, a następnie niektóre.
Używam go z powodzeniem dla dokładnie opisanego scenariusza: "proxy przed usługą obrazu". Dokładnie to, co moja usługa wizerunkowa i twoja usługa obrazowania może być inna (moja to resizer, który może wyszukać źródłowy adres URL brakujących/nigdy wcześniej żądanych obrazów, pobierania i zmiany rozmiaru), ale zasadniczo wydaje się, że osiągamy podobny cel .
Co ciekawe, struktura cenowa CloudFront w niektórych regionach (takich jak my-east-1 i us-west-2) jest taka, że jest nie tylko opłacalna, ale w rzeczywistości za pomocą CloudFront może być prawie 0,005 $ tańsza niż nieużywanie go na pobraną gigabajtę:.
W moim przypadku, oprócz usługi obrazu zaplecza, mam także wiadro S3 z pojedynczym plikiem, dołączonym do pojedynczej ścieżki w dystrybucji CloudFront (jako drugie "niestandardowe pochodzenie"), wyłącznie w celu serwowania /robots.txt
, aby kontrolować bezpośredni dostęp do moich obrazów przez dobrze zachowane roboty. Dzięki temu plik robots.txt może być zarządzany niezależnie od samej usługi obrazu.
Jeśli to nie odpowiada Twoim potrzebom, możesz je skomentować, a ja wyjaśnię lub wycofam tę odpowiedź.
Dlaczego bramka API? Twoja usługa wizerunkowa działa w Lambda? Ponadto typ treści "źródło"? Przypuszczalnie odnosisz się do "odpowiedzi". –
Czy istnieje szczególny powód, aby obraz został zwrócony przez firmę Lambda? Alternatywą byłoby, aby funkcja Lambda przesłała obraz do S3 i zwrócił link do tego obrazu. – JaredHatfield
@ Michael-sqlbot: Mogę wymyślić proxy z czymś innym, ale wtedy będę musiał to utrzymać. AWS może prawdopodobnie poradzić sobie z każdym ładunkiem, który mógłbym na niego rzucić. Dodatkowo buforowanie może być przydatne. Potrzeba proxy to przede wszystkim zasoby wyszukiwania w serwisie google na mojej stronie, ponieważ od moich firm innych usług (facet SEO mówi, że myśli, że skrobanie). Musimy użyć tych samych zasobów, więc chcę, aby wyglądały tak, jakby pochodziły z innego adresu. Żadnych lambda/manipulacji potrzebnych do tego, tylko proxy. Jeśli możesz polecić inną usługę, sprawdziłbym to. – kjs3