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

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

Un package de déploiement pour le runtime PowerShell contient votre script PowerShell, les modules PowerShell requis pour votre script PowerShell, ainsi que les assemblies nécessaires pour héberger PowerShell Core.

Création de la fonction Lambda

Pour commencer à écrire et appeler un script PowerShell avec Lambda, vous pouvez utiliser la cmdlet New-AWSPowerShellLambda 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 script PowerShell, le charger et le tester, procédez aux étapes suivantes :

  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 voir comment les messages du journal de votre script PowerShell sont envoyés à Amazon CloudWatch Logs, supprimez le commentaire de la ligne Write-Host 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 $PSVersionTable dans le pipeline PowerShell. Une fois l'exécution du script PowerShell terminée, le dernier objet figurant dans le pipeline PowerShell correspond aux données de retour de la fonction Lambda. $PSVersionTable est une variable globale PowerShell 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