

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
<a name="powershell-handler"></a>

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

Quando lo script PowerShell viene richiamato, le seguenti variabili sono predefinite:
+  *\$1LambdaInput* – 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. 
+  *\$1LambdaContext* – 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 \$1LambdaContext.

**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](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_requires?view=powershell-6). Per ulteriori dettagli sui pacchetti di distribuzione PowerShell, consulta [Distribuzione delle funzioni Lambda di PowerShell con gli archivi di file .zip](powershell-package.md).  
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](https://aws.amazon.com/powershell/?track=sdk).

## Restituzione dei dati
<a name="powershell-handler-output"></a>

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.