Definire l'handler della funzione Lambda in PowerShell - 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à.

Definire l'handler della funzione Lambda in PowerShell

Quando una funzione Lambda viene invocata, il gestore Lambda richiama lo script PowerShell.

Quando lo script PowerShell viene richiamato, le seguenti variabili sono predefinite:

  • $LambdaInput – PSObject contenente l'input per il gestore. L'input può essere costituito da dati dell'evento, pubblicati da un'origine eventi, o un input personalizzato che fornisci, ad esempio una stringa o qualsiasi oggetto dati personalizzato.

  • $LambdaContext – Un oggetto Amazon.Lambda.Core.ILambdaContext che è possibile utilizzare per accedere alle informazioni sulla chiamata corrente, come il nome della funzione corrente, il limite di memoria, il runtime rimanente e la registrazione.

A titolo illustrativo, considera l'esempio di codice PowerShell riportato di seguito.

#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'} Write-Host 'Function Name:' $LambdaContext.FunctionName

Questo script restituisce la proprietà FunctionName ottenuta dalla variabile $LambdaContext.

Nota

Sei tenuto a usare l'istruzione #Requires all'interno dei tuoi script PowerShell per indicare i moduli da cui dipendono gli script. Questa istruzione svolge due attività importanti. 1) Comunica ad altri sviluppatori quali moduli lo script utilizza e 2) identifica i moduli dipendenti richiesti dagli strumenti AWS PowerShell per creare un pacchetto con lo script, come parte della distribuzione. Per ulteriori informazioni sull'istruzione #Requires in PowerShell, consulta la pagina relativa alle informazioni sui requisiti. Per ulteriori dettagli sui pacchetti di distribuzione PowerShell, consulta Distribuzione delle funzioni Lambda di PowerShell con gli archivi di file .zip.

Quando la funzione Lambda PowerShell usa i cmdlet PowerShell AWS, assicurati di impostare un'istruzione #Requires che fa riferimento al modulo AWSPowerShell.NetCore che supporta PowerShell Core e non al modulo AWSPowerShell che supporta solo Windows PowerShell. Inoltre, assicurati di utilizzare la versione 3.3.270.0 o più recente di AWSPowerShell.NetCore che ottimizza il processo di importazione dei cmdlet. Se usi una versione precedente, sperimenterai partenze a freddo più lunghe. Per ulteriori informazioni, consulta Tools for PowerShell AWS.

Restituzione dei dati

Alcune chiamate Lambda hanno lo scopo di restituire i dati al loro chiamante. Ad esempio, se una chiamata era in risposta a una richiesta web proveniente da API Gateway, la funzione Lambda deve restituire la risposta. Per PowerShell Lambda, l'ultimo oggetto aggiunto alla pipeline PowerShell costituisce i dati restituiti dalla chiamata Lambda. Se l'oggetto è una stringa, i dati vengono restituiti così come sono. In caso contrario, l'oggetto viene convertito in formato JSON utilizzando il cmdlet ConvertTo-Json.

Ad esempio, considera la seguente istruzione PowerShell che aggiunge $PSVersionTable alla pipeline PowerShell:

$PSVersionTable

Al termine dello script di PowerShell, l'ultimo oggetto nella pipeline PowerShell sono i dati restituiti per la funzione Lambda. $PSVersionTable è una variabile globale PowerShell che fornisce inoltre informazioni sull'ambiente di esecuzione.