Déployer des fonctions PowerShell Lambda avec des archives de fichiers .zip - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déployer des fonctions PowerShell Lambda avec des archives de fichiers .zip

Un package de déploiement pour l' PowerShell environnement d'exécution contient votre PowerShell script, les PowerShell modules requis pour votre PowerShell script et les assemblys nécessaires pour héberger PowerShell Core.

Création de la fonction Lambda

Pour commencer à écrire et à invoquer un PowerShell script avec Lambda, vous pouvez utiliser New-AWSPowerShellLambda l'applet de commande pour créer un script de démarrage basé sur un modèle. Vous pouvez utiliser la cmdlet Publish-AWSPowerShellLambda pour déployer votre script vers Lambda. Ensuite, vous pouvez tester votre script via la ligne de commande ou la console Lambda.

Pour créer un nouveau PowerShell script, le télécharger et le tester, procédez comme suit :

  1. Pour afficher la liste des modèles disponibles, exécutez la commande suivante :

    PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
  2. Pour créer un exemple de script basé sur le modèle Basic, exécutez la commande suivante :

    New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic

    Un nouveau fichier nommé MyFirstPSScript.ps1 est créé dans un nouveau sous-répertoire du répertoire actuel. Le nom de ce répertoire est basé sur le paramètre -ScriptName. Vous pouvez utiliser le paramètre -Directory pour choisir un autre répertoire.

    Vous pouvez voir que le nouveau fichier a le contenu suivant :

    # 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. Pour savoir comment les messages de journal de votre PowerShell script sont envoyés à Amazon CloudWatch Logs, décommentez la Write-Host ligne de l'exemple de script.

    Pour illustrer comment renvoyer des données à partir de vos fonctions Lambda, ajoutez une ligne à la fin du script avec $PSVersionTable. Cela ajoute le $PSVersionTable au PowerShell pipeline. Une fois le PowerShell script terminé, le dernier objet du PowerShell pipeline correspond aux données renvoyées par la fonction Lambda. $PSVersionTableest une variable PowerShell globale qui fournit également des informations sur l'environnement d'exécution.

    Après avoir effectué ces modifications, les deux dernières lignes de l'exemple de script ressemblent à ce qui suit :

    Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
  4. Après avoir modifié le fichier MyFirstPSScript.ps1, modifiez le répertoire en spécifiant l'emplacement du script. Exécutez ensuite la commande suivante pour publier le script dans Lambda :

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

    Notez que le paramètre -Name spécifie le nom de la fonction Lambda qui s'affiche dans la console Lambda. Vous pouvez utiliser cette fonction pour appeler manuellement votre script.

  5. Appelez votre fonction à l'aide de la commande AWS Command Line Interface (AWS CLI) invoke.

    > aws lambda invoke --function-name MyFirstPSScript out