Definieren von Lambda-Funktions-Handlern 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 von Lambda-Funktions-Handlern in PowerShell

Beim Aufrufen einer Lambda-Funktion ruft der Lambda-Handler das PowerShell-Skript auf.

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

  • $LambdaInput – Ein PSObject mit den Eingabedaten für den Handler. 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 Amazon.Lambda.Core.ILambdaContext-Objekt, das Sie für den Zugriff auf Informationen über den aktuellen Aufrufverwenden können, wie etwa den Namen der aktuellen Funktion, das Speicherlimit, die verbleibende Ausführungszeit und die Protokollierung.

Betrachten Sie beispielsweise das folgende PowerShell-Codebeispiel.

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

Dieses Skript gibt die FunctionName-Eigenschaft zurück, das es von der $LambdaContext-Variable USD erhält.

Anmerkung

Sie müssen die #Requires-Anweisung innerhalb Ihres PowerShell-Skripts verwenden, um die Module anzugeben, von denen Ihre Skripts abhängen. Diese Anweisung erfüllt zwei wichtige Aufgaben. 1) Sie teilt anderen Entwicklern mit, welche Module das Skript verwendet und 2) identifiziert die abhängigen Module, die AWS PowerShell-Tools mit dem Skript im Rahmen der Bereitstellung verpacken müssen. Weitere Informationen über die #Requires-Anweisung in PowerShell finden Sie unter About Requires. Weitere Informationen zu PowerShell Bereitstellungspaketen finden Sie unter PowerShell-Lambda-Funktionen mit .zip-Dateiarchiven bereitstellen.

Wenn Ihre PowerShell Lambda-Funktion AWS PowerShell-Cmdlets verwendet, dann stellen Sie sicher, dass Sie eine AWSPowerShell.NetCore-Anweisung festlegen, die auf das #Requires-Modul verweist. Dieses Modul unterstützt PowerShell Core und nicht das AWSPowerShell-Modul, das nur Windows PowerShell unterstützt. 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 ist das letzte Objekt, das der PowerShell-Pipeline hinzugefügt wird, die Rückgabedaten aus dem Lambda-Aufruf. 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.

Betrachten Sie dazu die folgende Beispiel PowerShell-Anweisung, mit der $PSVersionTable der PowerShell-Pipeline hinzugefügt wird:

$PSVersionTable

Nachdem das PowerShell-Skript beendet ist, ist das letzte Objekt der PowerShell-Pipeline der Rückgabewert für die Lambda-Funktion. Bei $PSVersionTable handelt es sich um eine globale PowerShell-Variable, die außerdem Informationen über die laufende Umgebung bietet.