Distribuzione di funzioni Lambda - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Distribuzione di funzioni Lambda

È possibile distribuire il codice alla funzione Lambda caricando un archivio di file .zip o creando e caricando un'immagine di container.

archivi di file .zip

Un archivio di file .zip include il codice dell'applicazione e le relative dipendenze. Quando si creano funzioni utilizzando la console Lambda o un kit di strumenti, Lambda crea automaticamente un archivio di file .zip del codice.

Quando crei funzioni con l'API Lambda, gli strumenti da riga di comando o gli AWS SDK, devi creare un pacchetto di distribuzione. È inoltre necessario creare un pacchetto di distribuzione se la funzione utilizza un linguaggio compilato o per aggiungere dipendenze alla funzione. Per distribuire il codice della funzione, carica il pacchetto di implementazione da Amazon Simple Storage Service (Amazon S3) o dal computer locale.

Puoi caricare un file.zip come pacchetto di distribuzione utilizzando la console Lambda AWS Command Line Interface ,AWS CLI() o su un bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3).

Autorizzazioni relative ai file del pacchetto di distribuzione

Il runtime Lambda necessita dell'autorizzazione per leggere i file nel pacchetto di distribuzione. Nella notazione ottale delle autorizzazioni di Linux, Lambda richiede 644 autorizzazioni per i file non eseguibili (rw-r--r--) e 755 autorizzazioni (rwxr-xr-x) per le directory e i file eseguibili.

In Linux e macOS, utilizza il comando chmod per modificare le autorizzazioni file su file e directory nel pacchetto di implementazione. Ad esempio, per assegnare a un file eseguibile le autorizzazioni corrette, utilizza il comando seguente.

chmod 755 <filepath>

Per modificare le autorizzazioni file in Windows, consulta Set, View, Change, or Remove Permissions on an Object nella documentazione di Microsoft Windows.

Immagini di container

È possibile impacchettare il codice e le dipendenze come immagine di container utilizzando strumenti come l'interfaccia della riga di comando Docker (CLI). È quindi possibile caricare l'immagine nel registro di container ospitato su Amazon Elastic Container Registry (Amazon ECR).

Quando si richiama la funzione, Lambda distribuisce l'immagine di container in un ambiente di esecuzione. Lambda inizializza qualsiasi estensione e quindi esegue il codice di inizializzazione della funzione (il codice esterno al gestore principale). Si noti che la durata di inizializzazione della funzione è inclusa nel tempo di esecuzione fatturato.

Lambda esegue quindi la funzione chiamando il punto di ingresso del codice specificato nella configurazione della funzione (le impostazioni dell'immagine del contenitore ENTRYPOINT e CMD).

AWS fornisce un set di immagini di base open source che è possibile utilizzare per creare l'immagine del contenitore per il codice della funzione. È inoltre possibile utilizzare immagini di base alternative da altri registri di contenitori. AWS fornisce anche un client di runtime open source da aggiungere all'immagine di base alternativa per renderla compatibile con il servizio Lambda.

Inoltre, AWS fornisce un emulatore di interfaccia di runtime per testare le funzioni localmente utilizzando strumenti come la CLI Docker.

Nota

Devi creare ogni immagine di container in modo che sia compatibile con una delle architetture del set di istruzioni supportate da Lambda. Lambda fornisce immagini di base per ciascuna delle architetture del set di istruzioni; inoltre, Lambda fornisce immagini di base che supportano entrambe le architetture.

L'immagine creata per la tua funzione deve essere destinata a una sola delle architetture.

Non sono previsti costi aggiuntivi per la creazione di pacchetti e la distribuzione di funzioni come immagini di container. Quando viene richiamata una funzione distribuita come immagine di container, si paga per le richieste di chiamata e la durata dell'esecuzione. Vanno invece addebitati costi per la memorizzazione delle immagini di container in Amazon ECR. Per ulteriori informazioni, consulta la pagina dei prezzi di Amazon ECR.

Sicurezza delle immagini

Quando Lambda scarica per la prima volta l'immagine del container dalla sorgente originale (Amazon ECR), l'immagine di container viene ottimizzata, crittografata e archiviata utilizzando metodi di crittografia convergente autenticati. Tutte le chiavi necessarie per decrittografare i dati dei clienti sono protette utilizzando chiavi gestite dal cliente. AWS KMS Per tenere traccia e controllare l'utilizzo che fa Lambda delle chiavi gestite del cliente, è possibile visualizzare i log AWS CloudTrail.