AWS 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.

AWS Lambda -Funktionshandler in PowerShell

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

Wenn das PowerShell Skript aufgerufen wird, werden 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 Amazon.Lambda.Core.I-LambdaContext 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 Sie beispielsweise den folgenden PowerShell 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 variable abgerufen wurde.

Anmerkung

Sie müssen die -#RequiresAnweisung in Ihren PowerShell Skripten verwenden, um die Module anzugeben, von denen Ihre Skripte 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 im Rahmen der Bereitstellung mit dem Skript verpacken müssen. Weitere Informationen zur -#RequiresAnweisung in finden Sie PowerShellunter Über erfordert . Weitere Informationen zu PowerShell Bereitstellungspaketen finden Sie unter Bereitstellen 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 für 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 beispielsweise die folgende PowerShell Anweisung, die $PSVersionTable zur PowerShell Pipeline hinzufügt:

$PSVersionTable

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