Distribuzione delle funzioni Lambda di PowerShell con gli archivi di file .zip - 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 delle funzioni Lambda di PowerShell con gli archivi di file .zip

Un pacchetto di distribuzione per il runtime PowerShell contiene lo script PowerShell, i moduli PowerShell necessari per lo script PowerShell e gli assembly necessari per ospitare PowerShell Core.

Creazione di una funzione Lambda

Per iniziare a scrivere e invocare uno script PowerShell con , è possibile utilizzare il cmdlet New-AWSPowerShellLambda per creare un script di inizio in base a un modello. È possibile utilizzare il cmdlet Publish-AWSPowerShellLambda per distribuire lo script in Lambda. Quindi è possibile testare lo script utilizzando la riga di comando o la console Lambda.

Per creare un nuovo script PowerShell, caricarlo e testarlo, effettuare le seguenti operazioni:

  1. Per visualizzare l'elenco dei modelli disponibili, esegui il comando seguente:

    PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
  2. Per creare uno script di esempio in base al modello Basic, esegui il comando seguente:

    New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic

    Un nuovo file con nome MyFirstPSScript.ps1 viene creato in una nuova sottodirectory della directory corrente. Il nome della directory viene determinato in base al parametro -ScriptName. Puoi utilizzare il parametro -Directory per scegliere una directory alternativa.

    Puoi vedere che il nuovo file ha il seguente contenuto:

    # PowerShell script file to run as a Lambda function # # When executing in Lambda the following variables are predefined. # $LambdaInput - A PSObject that contains the Lambda function input data. # $LambdaContext - An Amazon.Lambda.Core.ILambdaContext object that contains information about the currently running Lambda environment. # # The last item in the PowerShell pipeline is returned as the result of the Lambda function. # # To include PowerShell modules with your Lambda function, like the AWSPowerShell.NetCore module, add a "#Requires" statement # indicating the module and version. #Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'} # Uncomment to send the input to CloudWatch Logs # Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
  3. Per vedere come i messaggi di log dello script PowerShell vengono inviati ad Amazon CloudWatch Logs, rimuovi il commento dalla riga Write-Host dello script di esempio.

    Per dimostrare come puoi restituire i dati dalle tue funzioni Lambda, aggiungi una nuova riga alla fine dello script con $PSVersionTable. In tal modo $PSVersionTable viene aggiunto alla pipeline PowerShell. Al completamento 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.

    Dopo aver apportato le modifiche, le ultime due righe dello script di esempio sono come riportato di seguito:

    Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
  4. Dopo la modifica del file MyFirstPSScript.ps1, modifica la directory sul percorso dello script. Quindi esegui il seguente comando per pubblicare lo script in Lambda:

    Publish-AWSPowerShellLambda -ScriptPath .\MyFirstPSScript.ps1 -Name MyFirstPSScript -Region us-east-2

    Nota che il parametro -Name specifica il nome della funzione Lambda che viene visualizzato nella console Lambda. Puoi utilizzare questa funzione per invocare manualmente lo script.

  5. Invoca la funzione utilizzando il comando AWS Command Line Interface (AWS CLI) invoke.

    > aws lambda invoke --function-name MyFirstPSScript out