Definieren Sie den Lambda-Funktionshandler in PowerShell - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Definieren Sie den Lambda-Funktionshandler in PowerShell

Wenn eine Lambda-Funktion aufgerufen wird, ruft der Lambda-Handler das Skript auf. PowerShell

Wenn das PowerShell Skript aufgerufen wird, sind die folgenden Variablen vordefiniert:

  • $ LambdaInput — Ein PSObject, das die Eingabe für den Handler enthält. Diese Eingabedaten können (von einer Ereignisquelle veröffentlichte) Ereignisdaten oder beliebige andere Eingabedaten sein, die Sie in Form einer Zeichenfolge oder eines benutzerdefinierten Datenobjekts übergeben.

  • $ LambdaContext — Ein LambdaContext Amazon.Lambda.Core.I-Objekt, mit dem Sie auf Informationen über den aktuellen Aufruf zugreifen können, z. B. den Namen der aktuellen Funktion, das Speicherlimit, die verbleibende Ausführungszeit und die Protokollierung.

Betrachten PowerShell Sie zum Beispiel den folgenden Beispielcode.

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

Dieses Skript gibt die FunctionName Eigenschaft zurück, die aus der LambdaContext Variablen $ abgerufen wurde.

Anmerkung

Sie müssen die #Requires Anweisung in Ihren PowerShell Skripten verwenden, um anzugeben, von welchen Modulen Ihre Skripten abhängen. Diese Anweisung erfüllt zwei wichtige Aufgaben. 1) Es teilt anderen Entwicklern mit, welche Module das Skript verwendet, und 2) es identifiziert die abhängigen Module, die AWS PowerShell Tools im Rahmen der Bereitstellung mit dem Skript paketieren müssen. Weitere Informationen zu der #Requires Anweisung in finden Sie PowerShell unter About requires. Weitere Informationen zu PowerShell Bereitstellungspaketen finden Sie unterBereitstellen von PowerShell Lambda-Funktionen mit ZIP-Dateiarchiven.

Wenn Ihre PowerShell Lambda-Funktion die AWS PowerShell Cmdlets verwendet, stellen Sie sicher, dass Sie eine #Requires Anweisung festlegen, die auf das AWSPowerShell.NetCore Modul verweist, das PowerShell Core unterstützt, und nicht auf das AWSPowerShell Modul, das nur Windows unterstützt. PowerShell Stellen Sie zudem sicher, dass Sie AWSPowerShell.NetCore Version 3.3.270.0 oder höher verwenden, da diese den Cmdlet-Importvorgang optimiert. Mit älteren Versionen dauern Kaltstarts länger. Weitere Informationen finden Sie unter AWS Tools for PowerShell.

Zurückgeben von Daten

Einige Lambda-Aufrufe sollen Daten zurück an ihren Aufrufer zurückgeben. Beispiel: Wenn ein Aufruf als Reaktion auf eine Webanforderung aus API Gateway erfolgt ist, muss unsere Lambda-Funktion die Antwort zurückgeben. Für PowerShell Lambda sind das letzte Objekt, das der PowerShell Pipeline hinzugefügt wurde, die Rückgabedaten des Lambda-Aufrufs. Wenn es sich bei dem Objekt um eine Zeichenfolge handelt, werden die Daten im Ist-Zustand zurückgegeben. Andernfalls wird das Objekt mithilfe des ConvertTo-Json-Cmdlets in JSON konvertiert.

Stellen Sie sich zum Beispiel die folgende PowerShell Anweisung vor, die die Pipeline erweitert: $PSVersionTable PowerShell

$PSVersionTable

Nachdem das PowerShell Skript abgeschlossen ist, sind die Rückgabedaten für die Lambda-Funktion das letzte Objekt in der PowerShell Pipeline. $PSVersionTableist eine PowerShell globale Variable, die auch Informationen über die laufende Umgebung bereitstellt.