Bereitstellen von PowerShell Lambda-Funktionen mit ZIP-Dateiarchiven - 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.

Bereitstellen von PowerShell Lambda-Funktionen mit ZIP-Dateiarchiven

Ein Bereitstellungspaket für die PowerShell Laufzeit enthält Ihr PowerShell Skript, PowerShell Module, die für Ihr PowerShell Skript erforderlich sind, und die Komponenten, die zum Hosten von PowerShell Core erforderlich sind.

Erstellen der Lambda-Funktion

Um mit dem Schreiben und Aufrufen eines PowerShell Skripts mit Lambda zu beginnen, können Sie das New-AWSPowerShellLambda -Cmdlet verwenden, um ein Starter-Skript basierend auf einer Vorlage zu erstellen. Sie können das Publish-AWSPowerShellLambda-Cmdlet verwenden, um Ihr Skript in Lambda bereitzustellen. Anschließend können Sie Ihr Skript entweder über die Befehlszeile oder die Lambda-Konsole testen.

Gehen Sie wie folgt vor, um ein neues PowerShell Skript zu erstellen, es hochzuladen und zu testen:

  1. Führen Sie den folgenden Befehl aus, um die Liste der verfügbaren Vorlagen anzuzeigen:

    PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
  2. Führen Sie den folgenden Befehl aus, um ein Beispielskript anhand der Basic-Vorlage zu erstellen:

    New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic

    Eine neue Datei mit dem Namen MyFirstPSScript.ps1 wird in einem neuen Unterverzeichnis des aktuellen Verzeichnisses erstellt. Der Name des Verzeichnisses basiert auf dem -ScriptName-Parameter. Sie können den -Directory-Parameter verwenden, um ein alternatives Verzeichnis auswählen.

    Sie können sehen, dass die neue Datei folgenden Inhalt hat:

    # 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. Um zu sehen, wie Protokollnachrichten von Ihrem PowerShell Skript an Amazon CloudWatch Logs gesendet werden, kommentieren Sie die Write-Host Zeile des Beispielskripts aus.

    Um zu veranschaulichen, wie Sie Daten von Ihren Lambda-Funktionen zurückgeben können, fügen Sie mit $PSVersionTable eine neue Zeile am Ende des Skripts hinzu. Dadurch wird $PSVersionTable der PowerShell Pipeline hinzugefügt. 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.

    Nachdem Sie alle Änderungen vorgenommen haben, sehen die beiden letzten Zeilen des Beispielskripts wie folgt aus:

    Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
  4. Nachdem Sie die MyFirstPSScript.ps1-Datei bearbeitet haben, ändern Sie das Verzeichnis in den Speicherort des Skripts. Führen Sie anschließend führen Sie den folgenden Befehl aus, um das Skript in Lambda zu veröffentlichen:

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

    Beachten Sie, dass der -Name-Parameter den Lambda-Funktionsnamen angibt, der in der Lambda-Konsole angezeigt wird. Sie können diese Funktion auch verwenden, um Ihr Skript manuell aufzurufen.

  5. Rufen Sie Ihre Funktion mit dem AWS Command Line Interface (AWS CLI) invoke-Befehl auf.

    > aws lambda invoke --function-name MyFirstPSScript out