Come creare e condividere i livelli di lambda

Come creare e condividere i livelli di lambda
Lambda Layer è un modo intelligente per impacchettare le dipendenze e le librerie che semplificano la distribuzione senza server. Il livello è in realtà un file zip che contiene tutte le dipendenze. Si riduce le dimensioni del pacchetto di distribuzione e rende la distribuzione più robusta. A volte, è necessario utilizzare la funzione Lambda multipla per l'applicazione e ogni funzione Lambda richiede alcune stesse librerie, ad esempio richieste biblioteca. In tal caso, è necessario creare il livello che ha la libreria di richieste e collegare il livello alle funzioni Lambda. In questo blog, studieremo come creare il livello Lambda e come usarlo nella funzione Lambda.

Creazione del livello Lambda

AWS fornisce i seguenti quattro modi per creare i livelli in lambda:

  • Console AWS
  • CloudFormation
  • API Lambda
  • SAM (modello di applicazione senza server)

In questo blog, useremo la console AWS per creare il livello Lambda che include il richieste modulo. Per creare il livello, crea prima una directory vuota per aggiungere il codice per il livello.

ubuntu@ubuntu: ~ $ mkdir demo_requests

Vai alla directory appena creata e installa il richieste modulo.

ubuntu@ubuntu: ~ $ cd demo_requests
ubuntu@ubuntu: ~ $ pip3 Installa richieste -t .

Questo comando installa il file richieste libreria in questa cartella. Per usarlo richieste Modulo come livello, zip prima questa cartella usando il seguente comando:

ubuntu@ubuntu: ~ $ zip -r demo_requests.zip demo_requests

Dopo aver creato un file zip del modulo, vai alla console Lambda e fai clic su Strati Scheda dal pannello lato sinistro.

Apre la console Lambda Layers. Puoi aggiungere il tuo livello facendo clic su Crea il livello pulsante.

Una nuova pagina sembra inserire i dettagli del livello Lambda. Fornire il nome e la descrizione del livello. Per questa demo, usiamo il Demo_layer Come il nome del livello.

Ora, ci sono due opzioni per fornire il codice al livello: uno è caricare un file zip e l'altro è caricare il codice dalla console S3. Per questa demo, carichiamo il file zip che include il richieste modulo.

Per Architettura compatibile Opzioni, lascialo vuoto e non controllare alcuna casella per questa opzione. Poiché il nostro codice di livello include un file richieste Modulo che è un modulo Python, il runtime per questo livello è pitone. Dopo aver inserito tutta la configurazione del livello richiesto, fare clic su creare pulsante per creare il livello.

Usando il livello Lambda nella funzione Lambda

Nella sezione precedente, abbiamo creato uno strato Lambda che include un richieste modulo. Ora, in questa sezione, aggiungiamo questo livello Lambda nella nostra funzione Lambda. Per aggiungere un livello Lambda nella funzione Lambda, fare clic sulla funzione Lambda e scorrere verso il basso fino a strati sezione.

Clicca sull'annunciod uno strato Pulsante per aggiungere un nuovo livello alla funzione Lambda. Apre una nuova pagina che richiede i dettagli del livello Lambda. Esistono tre tipi di fonti di strato Lambda:

  • Strati AWS
  • Livelli personalizzati
  • Specificare un arn

Per aggiungere un livello alla funzione Lambda che abbiamo creato nel nostro account, dobbiamo selezionare l'opzione Livelli personalizzati come sorgente di livello. Dopo aver selezionato l'origine del livello, dall'elenco, selezionare un livello creato nella sezione precedente e fare clic su Aggiungere Pulsante per aggiungere il livello nella funzione Lambda.

Ora, dopo aver aggiunto il livello, non è necessario installare il richieste modulo nella funzione Lambda mentre importiamo il richieste Modulo tramite lo strato Lambda.

Condivisione di strati lambda

Per impostazione predefinita, il livello Lambda è privato e può essere utilizzato solo all'interno del tuo account AWS. Ma puoi gestire le autorizzazioni del livello Lambda utilizzando l'interfaccia della riga di comando per condividere i livelli con un altro account AWS o organizzazione. La console AWS non ha la caratteristica di condividere gli strati Lambda con altri account AWS. IL Perdita per la versioni add-strato Il metodo viene utilizzato per condividere i livelli utilizzando l'interfaccia della riga di comando. Nelle prossime sezioni del blog, vedremo come possiamo condividere gli strati Lambda con altri account o organizzazioni AWS.

Condivisione del livello Lambda su un account AWS specifico

Per condividere lo strato Lambda, il Perdita per la versioni add-strato Viene utilizzato il metodo di interfaccia della riga di comando. È necessario specificare il nome del livello che si desidera condividere l'ID Account ID, Version-Number e AWS a cui si desidera condividere il livello. Quanto segue è il comando per condividere il livello Lambda con un altro account AWS usando l'interfaccia della riga di comando:

ubuntu@ubuntu: ~ $ aws lambda add-strate-version-permission \
--layer-name demo_layer \
--Action Lambda: getLayerversion \
--istruzione istruzione-1 \
--Versione-numero 1
--principale \

Condivisione pubblica di Lambda Layer

Per condividere pubblicamente un livello Lambda sul tuo account AWS per essere accessibile su tutti gli account AWS, devi solo cambiare il principale parametro del comando utilizzato nella sezione precedente. Invece di specificare un ID account AWS, è necessario utilizzare un "*" come principale per condividere pubblicamente lo strato Lambda su tutti gli account AWS.

ubuntu@ubuntu: ~ $ aws lambda add-strate-version-permission \
--layer-name demo_layer \
--istruzione istruzione-2 \
--Action Lambda: getLayerversion \
--Principal * \
--Versione-numero 1

Condivisione di Lambda Layer con tutti gli account AWS in un'organizzazione

Proprio come un account AWS, gli strati Lambda possono anche essere condivisi con tutti gli account AWS di un'organizzazione. Per condividere il livello Lambda con tutti gli account in un'organizzazione, è necessario aggiungere il Organizzazione-id parametro nel Perdita per la versioni add-strato comando. Ecco il comando per condividere il livello Lambda su tutti gli account AWS in un'organizzazione:

ubuntu@ubuntu: ~ $ aws lambda add-strate-version-permission \
--layer-name demo_layer \
--istruzione istruzione-3 \ \
--Action Lambda: getLayerversion \
--Principal * \
--Organizzazione-id \
--Versione-numero 1

Conclusione

In questo blog, abbiamo studiato come creare e condividere il livello Lambda per riutilizzare i piccoli blocchi del nostro codice in diverse funzioni di lambda. Abbiamo imparato come creare un file zip di una libreria di richieste Python e creato un livello Lambda usando questo file zip. Dopo aver creato il livello Lambda, abbiamo aggiunto questo livello Lambda alla nostra funzione Lambda per aumentare la riusabilità del codice. Inoltre, abbiamo discusso di come possiamo condividere gli strati Lambda con account AWS specifici e tutti gli account di un'organizzazione.