Mi scuso, in anticipo, per dare una risposta che non risponde direttamente alla domanda e suggerisce invece di adottare un approccio diverso ... ma basato sulla domanda e sui commenti, e sulla mia esperienza personale con ciò in cui credo di essere un'applicazione simile, sembra che tu stia usando lo strumento sbagliato per il problema, o almeno uno strumento che non è la scelta ottimale all'interno dell'ecosistema di AWS.
Se il servizio di immagini era in esecuzione all'interno di Amazon Lambda, la necessità di gateway API sarebbe più evidente. Assente, non lo vedo.
Amazon CloudFront fornisce il recupero di contenuti da un server back-end, memorizzazione nella cache del contenuto (in oltre 50 posizioni "edge" a livello globale), nessun addebito per la memorizzazione del contenuto memorizzato nella cache ed è possibile configurare fino a 100 nomi host distinti che puntano a una singola distribuzione di Cloudfront, oltre al nome host predefinito xxxxxxxx.cloudfront.net
. Supporta anche SSL. Questo sembra quello che stai cercando di fare, e poi alcuni.
Io lo uso, con molto successo esattamente per lo scenario che descrivi: "un proxy di fronte a un servizio di immagine". Esattamente quello che fanno il mio servizio di immagini e il tuo servizio di immagine (il mio è un resizer che può cercare l'URL sorgente di immagini mancanti/mai prima richieste, recuperare e ridimensionare) ma fondamentalmente sembra che stiamo realizzando uno scopo simile . Curiosamente, la struttura dei prezzi di CloudFront in alcune regioni (come us-east-1 e us-west-2) è tale che non è solo conveniente, ma in realtà l'utilizzo di CloudFront può essere quasi $ 0,005 più economico di non usarlo per gigabyte scaricato.
Nel mio caso, oltre al servizio di immagine di back-end, ho anche un bucket S3 con un singolo file, collegato a un singolo percorso nella distribuzione CloudFront (come una seconda "origine personalizzata"), al solo scopo di servire fino /robots.txt
, per controllare l'accesso diretto alle mie immagini da crawler ben educati. Ciò consente al file robots.txt di essere gestito separatamente dal servizio immagini stesso.
Se questo non sembra soddisfare le vostre esigenze, sentitevi liberi di commentare e io chiarirò o ritirare questa risposta.
fonte
2015-07-25 20:13:32
Perché gateway API? Il tuo servizio di immagini viene eseguito in Lambda? Inoltre, il tipo di contenuto "fonte"? Presumibilmente ti stai riferendo alla "risposta". –
C'è un motivo specifico per cui l'immagine deve essere restituita da Lambda? Un'alternativa sarebbe avere la funzione Lambda caricare l'immagine su S3 e restituire un collegamento a quell'immagine. – JaredHatfield
@ Michael-sqlbot: potrei lanciare un proxy con qualcos'altro, ma poi avrei dovuto mantenerlo. AWS può presumibilmente gestire qualsiasi carico che potrei essere in grado di lanciare contro di esso. Inoltre, la memorizzazione nella cache potrebbe essere utile. La necessità di un proxy in primo luogo è la ricerca di google che vede le risorse sulla mia pagina come da un altro servizio della mia azienda (il tizio del SEO dice che pensa che stiamo raschiando). Dobbiamo utilizzare le stesse risorse, quindi voglio solo che assomiglino a un indirizzo diverso. Non è necessaria alcuna manipolazione/manipolazione per questa cosa, solo un proxy. Se puoi consigliare un altro servizio, controllerei. – kjs3