Come Gestire le Diverse Versioni di Funzioni Lambda

0
181

Lambda funzioni sono molto utili entrata AWS compute servizi. Dato che sono fondamentalmente solo una funzione nel cloud, tracking diverse versioni e il rollout degli aggiornamenti è fondamentale per lavorare con loro in modo efficace.

$Brani più RECENTI Aggiornamenti Più Recenti

Ogni volta che si apporta una modifica a una funzione Lambda, le modifiche si riflettono automaticamente in una versione chiamata $AGGIORNATI. Questo brani più recenti aggiornamenti, ed è la versione di default per la maggior parte delle funzioni Lambda. Modifiche da Lambda pagina di modifica, Cloud9 IDE, zip e caricare le foto da CLI tutti gli aggiornamenti di questa versione.

A causa di questo, il $ULTIMA versione non dovrebbe essere usato in produzione, come tutti gli aggiornamenti per la funzione per testare le nuove funzioni influenzerà la vostra produzione di traffico. Inoltre, non vi è alcun modo semplice per implementare aggiornamenti nel corso del tempo con CodeDeploy se si utilizza $AGGIORNATI.

Invece, si consiglia di creare nuove versioni per ogni release, e una “produzione” alias che punta ad esso. $ULTIMO che può essere utilizzato per lo sviluppo, con il suo alias che punta ad esso pure.

Aggiunta di una Nuova Versione (E Spostando il Traffico Ad Esso)

Lavorare con le versioni è abbastanza facile. Da Lambda Console di Gestione, selezionare la funzione e fare clic su “Versione:” a discesa. Questo vi permetterà di passare tra le versioni e visualizzare le versioni attualmente in uso.

Per pubblicare una nuova versione, devi passare per il $ULTIMA versione, e fare clic su “Pubblica una nuova versione” da “Azioni” a discesa.

Le nuove versioni sono piuttosto archaically, contrassegnata da un incremento intero, non c’è alcun modo di utilizzare lo standard principali.minori.patch formato utilizzato per la maggior parte delle versioni del software. Se si ha realmente bisogno di questo formato, si consiglia di utilizzare CodePipeline con SAM distribuzioni, e tenere traccia del vostro Lambda versioni su Git.

Questa nuova versione può essere utilizzata anche in altri servizi, come le API Gateway. Tuttavia, non si vuole aggiornare ogni servizio che utilizza la funzione Lambda ogni volta che la funzione viene aggiornata. Invece, si dovrebbe creare un Alias che punta a un particolare numero di versione, e può essere impostato come endpoint API Gateway. In questo modo, ogni volta che si pubblica una nuova versione, avrete semplicemente bisogno di aggiornare l’alias per cambiare tutto.

È possibile creare alias dallo stesso menu “Azioni”. Dare un nome, come “Produzione” e selezionare una versione di punta.

Gli alias possono anche spostare progressivamente il traffico oltre ad una nuova versione. Mentre è possibile impostare manualmente questo è in gran parte utilizzato per CodeDeploy distribuzioni, dove le nuove versioni delle funzioni può essere distribuito gradualmente, ad esempio, il 10% ogni cinque minuti o giù di lì. In questo modo, è possibile rilevare gli errori precoce e rollback di stampa prima che influenzano tutti.

SAM Distribuzioni di Aggiungere Automaticamente le Nuove Versioni

La creazione di versioni manualmente è utile, ma se si sta gestendo un sacco di funzioni, probabilmente con SAM distribuzioni, invece. Le funzioni Lambda distribuito utilizzando SAM modelli aggiungerà automaticamente una nuova versione (e aggiornare $ULTIMA).

Combinato con Git per il controllo di versione, e AWS è CodePipeline CI/CD, questo rende la versione management per le funzioni Lambda molto più facile. Ogni volta che un cambiamento è spinto verso il ramo di rilascio nel controllo del codice sorgente, CodePipeline attiverà automaticamente e aggiornare le vostre funzioni. Se stai lavorando con un linguaggio che non ha bisogno di compilazione (o transpiling nel caso del Dattiloscritto), è anche possibile inviare il tuo codice funzione per CodeBuild per gestire questa fase.

SAM distribuzione è un’estensione di CloudFormation, in modo che le eventuali distribuzioni effettuate utilizzando SAM creare un nuovo CloudFormation stack. Ogni volta che gli aggiornamenti sono spinto, CloudFormation riconosce che si tratta di un aggiornamento dello stack, piuttosto che un nuovo stack, e andrà a sostituire l’attuale versione della funzione con la versione aggiornata.