Quali Sono Le Funzioni Lambda, E Come Si Utilizza?

0
198

AWS funzioni Lambda sono un modo per eseguire il codice senza il provisioning o di gestione di un proprio server. Piuttosto che l’esecuzione di una applicazione on-line, si esegue una singola funzione nel cloud, che può essere attivato in risposta alle API di eventi o altre manifestazioni nel vostro account AWS.

Come Usare Le Funzioni Lambda?

Lambda è un compute servizio, puro e semplice, ed è probabilmente il più semplice di tutti. Piuttosto che l’affitto di un server con un determinato numero di core e la quantità di RAM, ti basta caricare il tuo codice, e si esegue la funzione. Di solito non eseguire manualmente; invece, verrà impostato per l’esecuzione sulla base delle azioni da parte di altri servizi AWS. Per esempio, l’esecuzione di una funzione per ridimensionare le immagini ogni volta che un nuovo file viene inserito in S3 (un metodo utilizzato dal Seattle Times di grande effetto), o una query di un database ogni volta che viene inviata una richiesta al Gateway API.

Risorse del Computer sono assegnati automaticamente alla funzione di esecuzione, e utilizzare la stessa quantità di memoria necessaria per tutto il tempo come l’attività continua. Sei semplicemente fatturati in base al numero di chiamate di funzione e la quantità di memoria ogni invocazione utilizza.

Questo rende Lambda altamente flessibile e può essere utilizzato come back-end. Applicazioni tradizionali sono per lo più monolitico, si dispone di un server o di una flotta di loro) in esecuzione l’applicazione. Si può avere server separati per il web hosting, database e altre cose, ma un sacco di applicazioni sono costruite in questo modo, uno grande eseguibile, molte parti in movimento.

Con tutto interconnesso, e senza ordine rigoroso, questo può ottenere disordinato davvero veloce. E ‘ anche più difficile per la scala in modo efficace, se si scopre che una parte dell’applicazione è il collo di bottiglia, può essere difficile da eliminare senza scalare l’intera applicazione e aumentando notevolmente il tuo AWS disegno di legge nel processo.

Invece, è possibile tagliare il collo di bottiglia del tutto, e spostarlo Lambda. Dopo tutto, Lambda, non importa se si esegue la funzione di dieci volte in un mese, o dieci milioni di volte in un mese.

Questo permette di Lambda per essere altamente efficiente, e, se implementato correttamente, si può risparmiare un sacco di soldi. Adam Pash da Postlight è stato in grado di abbandonare il loro mensile AWS bolletta da oltre 10.000 $per solo $370, solo passando a Lambda e di ottimizzazione dell’utilizzo della memoria.

Mentre non è così drastica e veloce per ogni applicazione, Lambda ha alcuni grandi vantaggi che la rendono una parte cruciale di AWS scaletta di servizi di elaborazione.

Per i non-applicazioni “mission critical”, presenta anche un sistema molto economico per eseguire un’applicazione che ha bisogno di fare richieste di API. Per esempio, si potrebbe servire un web statico app senza alcun server, memorizzando il tuo sito web in S3, che serve attraverso CloudFront, e il collegamento a una Lambda backend tramite Gateway API che comunica con un DynamoDB tabella.

Quanto Costano?

Come la maggior parte di AWS, Lambda prezzo è molto “pay-as-you-go” modello. Piuttosto che pagare una tariffa fissa per l’intero server, si paga solo per l’esatta quantità di risorse che l’applicazione utilizza mai pagare per il tempo di inattività, nemmeno un secondo. Questo, ovviamente, fa Lambda abbastanza efficiente, oltre ad essere in grado di eliminare i colli di bottiglia monolitico applicazioni.

Lambda oneri sono come segue, per noi-est-1:

  • $0,20 per 1M richieste
  • $0.000016667 per ogni GB-secondo

La prima carica che rende più senso; se si hanno 100 milioni di richieste in un mese, dovrete pagare una tassa di $20 per che.

La seconda carica è molto più confusa. Fondamentalmente, si è applicata in base alla memoria di utilizzo delle funzioni, dal momento che è di solito il fattore limitante per AWS. Se la funzione si avvia, alloca 1024 MB di RAM, e corre per un solo secondo, ti verrà addebitato $0.000001667 per che. Questo è un bel numero basso, ma in tutta 1M richieste, è $1.667.

Naturalmente, ti consigliamo di scegliere un runtime che la memoria efficiente. NodeJS è comunemente utilizzato, come è abbastanza leggero rispetto a runtime Java. Tuttavia, Java può essere più veloce per le attività che richiedono più tempo per completare, e dal momento che non si paga per il tempo trascorso inizializzazione del runtime (cioè, un “avviamento a freddo”), ma non sempre è così male come sembra sulla carta.

E ‘ tutto un bilanciamento del gioco, ma si vuole cercare di ridurre al minimo due cose:—l’utilizzo di memoria e di tempo speso in esecuzione della funzione. Non c’è nessun esplicito carica per più funzioni di esecuzione, ma hai la tariffazione al secondo, per GB, in modo da 256 MB funzione che viene eseguito per due secondi il costo è lo stesso di 512 MB funzione che viene eseguito per uno.

Guida Introduttiva

Accedi al tuo account AWS e la testa verso il Lambda Console di Gestione.

Ci sono due principali schede qui. Il primo è per le Applicazioni; Lambda applicazioni di gestire molteplici funzioni, e sono specificamente distribuito automaticamente utilizzando un modello SAM. Questo permette loro di essere rintracciato su Git e la versione gestito, che aiuta immensamente quando si lavora con centinaia di funzioni.

La seconda scheda è per le singole funzioni. Se si sta solo facendo una autonoma funzione Lambda, o sono solo giochetti per avere la sensazione di esso, si dovrebbe cominciare da qui e creare una funzione da zero, come è molto più semplice.

È possibile creare una nuova funzione “Funzioni” scheda:

Avete un paio di opzioni qui. È possibile creare la funzione interamente da zero, che consente di inizializzare la funzione con niente di più che un “hello world”. Si può anche scegliere di utilizzare un modello precompilato, o anche scaricare una funzione Lambda serverless applicazione del repository.

Se si sta creando da soli, dovrete scegliere un runtime. Lambda è scegliere per impostazione predefinita:

Si può anche portare il proprio runtime per eseguire qualsiasi lingua che si desidera.

Una volta creato, è possibile modificare la funzione della pagina. Standard NodeJS funzione esporta un gestore, il quale è chiamato ogni volta che la funzione di risposta agli eventi.

Si consiglia di utilizzare AWS della Cloud9 IDE per lavorare con le funzioni Lambda. Si tratta di un web-based IDE costruita sulla stessa editor utilizzato la funzione di default dell’editor, ma con il vantaggio di molto più semplice, debug e test.

Se si desidera avere la funzione di rispondere alle richieste di API, il metodo più semplice per impostare in questo modo è con il Gateway API. È possibile creare una nuova API e hanno percorso alcuni endpoint direttamente ad una specifica funzione Lambda, che gestisce la richiesta e restituire una risposta.

In caso contrario, è possibile specificare un trigger in “Designer” in alto, come ogni volta che un oggetto è posto in una particolare S3 secchio. È inoltre possibile specificare una destinazione che i risultati vengono inviati, ad esempio un SQS coda, SNS argomento, o altra funzione Lambda.

La funzione Lambda verrà eseguito con i privilegi da esecuzione di ruolo che è stato creato per questo. Se hai l’accesso ad altre risorse AWS, devi dargli i permessi per farlo in IAM Console di Gestione.