View a markdown version of this page

Gestione delle revisioni delle funzioni Web - 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à.

Gestione delle revisioni delle funzioni Web

Una revisione è un'istantanea immutabile del codice e della configurazione dell'applicazione Web Function. Per modificare il codice o qualsiasi impostazione di revisione, ad esempio, oppure timeoutSeconds maxConcurrencyPerEnvironmentenvironmentVariables, è necessario creare una nuova revisione. Il fatto che la nuova revisione riceva traffico dipende dalla modalità di distribuzione automatica di ciascun endpoint. Un endpoint in LatestRevisionmodalità indirizza tutto il traffico verso la nuova revisione dopo che questa diventa attiva. Un endpoint in modalità Disabilitato mantiene i pesi di revisione correnti finché non vengono modificati. Poiché le revisioni sono immutabili, è possibile ripristinarle indirizzando il traffico verso una revisione precedente. La revisione precedente deve rimanere attiva e il codice, la chiave, il ruolo e le altre dipendenze devono rimanere disponibili. Per informazioni sull'instradamento del traffico tra le revisioni, vedere. Modelli di implementazione

Proprietà di revisione

Ogni revisione contiene la seguente configurazione:

Proprietà Description Predefinita Modificabile
ID revisione Un ID univoco che Lambda genera quando crei la revisione. – No (generato)
Revisione ARN L'Amazon Resource Name (ARN) della revisione. – No (generato)
Funzione ARN L'ARN della funzione Web a cui appartiene la revisione. – No (generato)
state Lo stato del ciclo di vita della revisione (PendingActive, o). Failed Per informazioni dettagliate, vedi Stati di revisione. – No (gestito da Lambda)
StateReason Una descrizione del motivo per cui la revisione si trova nello stato corrente, ad esempio la causa di uno stato. Failed – No (gestito da Lambda)
errori Un elenco di errori rilevati da Lambda durante la creazione o la lettura della revisione. Ogni errore indica l'attributo interessato e include un codice di errore e un messaggio. Assente quando la revisione non contiene errori. – No (gestito da Lambda)
Creato in Il timestamp in cui è stata creata la revisione. – No (generato)
description Una descrizione opzionale per la revisione fornita al momento della creazione. Nessuno No (immutabile)
BuildConfig Il codice e il runtime per la revisione. Contiene le runtimeConfig impostazioni codeConfig e descritte nelle righe seguenti. – No (immutabile)
CodeConfig La posizione del pacchetto di distribuzione. Contiene l's3Objectimpostazione descritta nelle righe seguenti. Parte dibuildConfig. – No (immutabile)
Oggetto S3 La posizione Amazon S3 del pacchetto di distribuzione. Contiene le versionId impostazioni bucketkey, e descritte nelle righe seguenti. Per informazioni dettagliate, vedi Distribuzione del codice Web Function da Amazon S3. Parte dicodeConfig. – No (immutabile)
bucket Il nome del bucket Amazon S3 che contiene il pacchetto di distribuzione. Il bucket deve avere il controllo delle versioni S3 abilitato. Parte di. s3Object – No (immutabile)
key La chiave oggetto Amazon S3 del pacchetto di distribuzione. Parte di. s3Object – No (immutabile)
VersionID L'ID di versione dell'oggetto Amazon S3. Opzionale. Se lo ometti, Lambda utilizza la versione più recente dell'oggetto al momento della creazione. In entrambi i casi, Lambda associa la revisione a una versione specifica dell'oggetto. Parte di. s3Object Versione più recente No (immutabile)
Runtimeconfig La configurazione di runtime. Contiene l'runtimeimpostazione descritta nella riga seguente. Parte dibuildConfig. – No (immutabile)
runtime L'identificatore di runtime (ad esempio,). nodejs24.x Per i runtime supportati, vedere. Runtime della funzione Web Lambda Sebbene l'identificatore di runtime sia fisso per la revisione, il runtime stesso non è bloccato. Lambda applica automaticamente le patch di sicurezza e le correzioni di bug al runtime, in modo che l'identificatore (ad esempionodejs24.x) si risolva sempre nell'ultima versione con patch. Per informazioni dettagliate, vedi Applicazione automatica delle patch in fase di esecuzione. runtimeConfigParte di. – No (immutabile)
Configurazione del servizio Le impostazioni di runtime per la revisione. Contiene le telemetryConfig impostazioni executionRoleArntimeoutSeconds,maxConcurrencyPerEnvironment,environmentVariables, e descritte nelle righe seguenti. – No (immutabile)
esecuzione RoleArn L'ARN del ruolo IAM che la funzione Web assume in fase di esecuzione. Il ruolo concede le autorizzazioni per accedere a servizi AWS e risorse. Obbligatorio. Per informazioni dettagliate, vedi Ruolo di esecuzione. Parte di. serviceConfig – No (immutabile)
TimeoutSeconds Il tempo massimo, in secondi, di esecuzione di una singola richiesta HTTP. Valori validi: 3—900. Parte di. serviceConfig 30 No (immutabile)
massimo ConcurrencyPerEnvironment Il numero massimo di richieste HTTP simultanee per ambiente di esecuzione. Valori validi: 1—128. Parte di. serviceConfig 64 No (immutabile)
Variabili d'ambiente Key-value coppie disponibili per l'applicazione in fase di esecuzione. Impostato per revisione e immutabile dopo la creazione. Parte serviceConfig di. Nessuno No (immutabile)
Configurazione di telemetria Impostazioni di telemetria per la revisione. Contiene l'loggingConfigimpostazione descritta nelle righe seguenti. Se omettitelemetryConfig, Lambda invia comunque i log delle applicazioni al gruppo di log predefinito. Parte di. serviceConfig Nessuno No (immutabile)
Configurazione di registrazione La configurazione di registrazione per la revisione. Contiene le systemLogLevel impostazioni logGroupapplicationLogLevel, e descritte nelle righe seguenti. Per informazioni dettagliate, vedi Controlli di registrazione. Parte ditelemetryConfig. Nessuno No (immutabile)
LogGroup Il gruppo di CloudWatch log di Amazon Logs che riceve i tuoi log. I nomi dei gruppi di log che iniziano con aws/ sono riservati e rifiutati. Per informazioni dettagliate, vedi Utilizzo di un gruppo di log personalizzato. Parte diloggingConfig. /aws/lambda/web/function-name No (immutabile)
applicazioneLogLevel La gravità minima dei log dell'applicazione che Lambda invia ad Amazon CloudWatch Logs. Valori validi:TRACE,,DEBUG, INFOWARN, ERROR e. FATAL Parte diloggingConfig. INFO No (immutabile)
sistema LogLevel La gravità minima dei log di Lambda-generated sistema che Lambda invia ad Amazon CloudWatch Logs. Valori validi: DEBUG, INFO e WARN. Parte di. loggingConfig INFO No (immutabile)
km KeyArn L'ARN della chiave gestita dal cliente utilizzata per crittografare il codice e le variabili di ambiente. Opzionale. Se un PerRegion endpoint MultiRegion o indirizza il traffico verso la revisione, utilizza una chiave multiregionale con una replica in ciascuna delle regioni dell'endpoint. Per informazioni dettagliate, vedi Crittografia a riposo per Web Functions. Nessuno No (immutabile)

Tutte le proprietà di revisione sono immutabili dopo la creazione. Per modificare qualsiasi configurazione, crea una nuova revisione con i valori aggiornati.

Creare una revisione

Lambda crea una revisione quando chiami. CreateWebFunctionRevision Fornisci la posizione e la configurazione del codice nella richiesta. Una nuova revisione non copia le impostazioni da una revisione esistente. Specificate tutte le impostazioni che desiderate conservare, incluse le variabili di ambiente. Le impostazioni che ometti utilizzano i loro valori predefiniti. Per iniziare dai valori correnti, esegui get-web-function-revision e riutilizza i valori e con le buildConfig modifiche apportate. serviceConfig La nuova revisione inizia nello stato In sospeso mentre Lambda scarica il codice e ne prepara un elemento di codice. Una volta completata la preparazione, la revisione passa alla versione Attiva. Se si verifica un errore durante la preparazione, la revisione passa a Non riuscita e non può servire il traffico. Per informazioni dettagliate su ogni stato, consulta. Stati di revisione

Prima di creare una revisione, carica il pacchetto di distribuzione.zip in un bucket Amazon S3 con versione e ottieni l'ARN di un ruolo di esecuzione che Lambda può assumere. Per informazioni dettagliate, consulta Distribuzione del codice Web Function da Amazon S3 e Ruolo di esecuzione.

Per creare una revisione con codice aggiornato (AWS CLI)
  1. Eseguite il comando seguente per creare una nuova revisione. Sostituisci il bucket S3, la chiave, l'ARN del ruolo e i valori di configurazione con i tuoi.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role" }'

    Il comando utilizza i seguenti oggetti. Per ogni impostazione e le relative impostazioni predefinite, vedereProprietà di revisione.

    • buildConfigcontienecodeConfig, il bucket Amazon S3 e la chiave del pacchetto di distribuzione e il runtime (ad esempioruntimeConfig,). nodejs24.x Entrambi i parametri sono obbligatori.

    • serviceConfigcontiene il necessarioexecutionRoleArn, l'ARN del ruolo di esecuzione che la funzione Web assume quando viene eseguita. Può anche conteneretimeoutSeconds, maxConcurrencyPerEnvironmentenvironmentVariables, e. telemetryConfig

    Il comando restituisce i dettagli sulla nuova revisione, inclusa la relativarevisionId. La revisione inizia nello stato In sospeso.

  2. Per confermare che la revisione è attiva, esegui il comando seguente. Sostituire my-web-app con il nome della funzione e rev-a1b2c con il revisionId risultato della risposta.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    La revisione è pronta quando lo state èActive. In caso state Failed affermativo, ne stateReason descrive la causa. Per informazioni dettagliate, vedi Stati di revisione.

    Subito dopo aver creato una revisione, di solito state Pending è così. Per aspettare che sia cosìActive, esegui aws lambda-web wait web-function-revision-active con le stesse opzioni.

Per creare una revisione con una configurazione aggiornata (AWS CLI)
  1. Per modificare la configurazione senza modificare il codice, specificate la stessa posizione del codice con le nuove impostazioni. L'esempio seguente modifica il timeout a 60 secondi e aggiunge una variabile di ambiente.

    aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "my-bucket", "key": "my-app-v2.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-function-role", "timeoutSeconds": 60, "maxConcurrencyPerEnvironment": 32, "environmentVariables": { "DATABASE_URL": "my-database-endpoint", "LOG_LEVEL": "info" } }'
  2. Per confermare che la revisione è attiva, esegui il comando seguente. Sostituire my-web-app con il nome della funzione e rev-a1b2c con il revisionId risultato della risposta.

    aws lambda-web get-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

    La revisione è pronta quando lo state èActive. In caso state Failed affermativo, ne stateReason descrive la causa. Per informazioni dettagliate, vedi Stati di revisione.

    Subito dopo aver creato una revisione, di solito state Pending è così. Per aspettare che sia cosìActive, esegui aws lambda-web wait web-function-revision-active con le stesse opzioni.

Dopo aver creato la revisione, il modo in cui il traffico la raggiunge dipende dalla modalità di distribuzione automatica dell'endpoint. Per informazioni dettagliate, vedi Modelli di implementazione.

Revisioni degli elenchi

Per visualizzare tutte le revisioni di una funzione Web, utilizzare il seguente comando:

aws lambda-web list-web-function-revisions \ --function-name my-web-app

La risposta include l'identificatore, lo stato, il timestamp di creazione e il riepilogo della configurazione di ciascuna revisione. Utilizza l'identificatore di revisione quando aggiorni i pesi di revisione dell'endpoint o quando elimini una revisione.

Eliminazione di una revisione

È possibile eliminare una revisione che non è più necessaria. L'eliminazione di una revisione la rimuove definitivamente. Il tuo pacchetto di distribuzione in Amazon S3 non è interessato.

Importante

Non è possibile eliminare una revisione verso cui un endpoint indirizza il traffico (una revisione con un peso diverso da zero su qualsiasi endpoint). Rimuovi la revisione dai pesi di revisione di ogni endpoint prima di eliminarla.

Per eliminare una revisione (AWS CLI)
  • Eseguite il comando seguente per eliminare una revisione specifica.

    aws lambda-web delete-web-function-revision \ --function-name my-web-app \ --revision-id rev-a1b2c

Limiti di revisione e pulizia automatica

Lambda utilizza 50 revisioni per funzione Web come obiettivo di pulizia automatica. L'obiettivo non è regolabile. Nella console Service Quotas, viene visualizzato come Revisioni per funzione Web (). web-function-revisions-per-function

Non è necessario eliminare le revisioni precedenti per rispettare l'obiettivo di pulizia. Quando una nuova revisione diventa attiva e il numero totale di revisioni supera l'obiettivo di pulizia, Lambda elimina automaticamente le revisioni più vecchie che non sono in uso. Una revisione viene utilizzata quando un endpoint indirizza il traffico verso di essa, incluso quando viene referenziata in un punto qualsiasi della proprietà di un endpoint o. regionalEndpoints MultiRegion PerRegion Lambda non elimina automaticamente una revisione in uso o la revisione appena diventata attiva. La pulizia è asincrona. Il numero di revisioni potrebbe essere temporaneamente superiore a 50 mentre le revisioni precedenti sono ancora in uso o è in corso la pulizia. Una revisione rimossa da tutti i pesi di revisione, ad esempio un obiettivo di rollback, può essere eliminata mediante pulizia.

È inoltre possibile eliminare le revisioni manualmente in qualsiasi momento. Per la procedura, vedere la sezione precedente.

Il pacchetto di distribuzione di ogni revisione può pesare fino a 512 MB (decompresso). Poiché il pacchetto di distribuzione viene fornito nel proprio bucket Amazon S3 e Lambda fa riferimento al codice direttamente dal bucket, non esiste una quota di storage del codice separata per Web Functions. Per informazioni dettagliate, vedi Distribuzione del codice Web Function da Amazon S3.

Configurazione delle impostazioni di revisione

Tutte le configurazioni sono impostate per revisione e sono immutabili dopo la creazione. Per modificare qualsiasi impostazione, crea una nuova revisione con i valori aggiornati. Le seguenti impostazioni controllano il comportamento di esecuzione.

Per il timeout della richiesta e le impostazioni delle variabili di ambiente, vedere Timeout della richiesta e Variabili di ambiente inConfigurazione delle funzioni Web Lambda.

Concorrenza per ambiente

L'maxConcurrencyPerEnvironmentimpostazione controlla quante richieste HTTP vengono gestite contemporaneamente da un singolo ambiente di esecuzione. I valori validi sono 1—128. Il valore predefinito è 64.

Per I/O-bound le applicazioni (molte richieste in attesa di chiamate al database o alla rete), un valore più alto massimizza l'utilizzo. Per CPU-bound le applicazioni, un valore più basso riduce i conflitti. Per ulteriori informazioni, consulta Comportamento di scalabilità per Lambda Web Functions.