Package de déploiement AWS Lambda dans PowerShell - AWS Lambda

Package de déploiement AWS Lambda dans PowerShell

Un package de déploiement Lambda PowerShell est un fichier ZIP qui contient votre script PowerShell, les modules PowerShell requis pour votre script PowerShell, et les assemblies nécessaires pour héberger PowerShell Core.

Le module AWSLambdaPSCore possède les nouvelles applets de commande suivantes pour vous aider à créer et publier des fonctions Lambda PowerShell.

Cmdlets AWSLambdaPSCore

  • Get-AWSPowerShellLambdaTemplate – Renvoie une liste de modèles de mise en route.

  • New-AWSPowerShellLambda – Crée un script PowerShell basée sur un modèle.

  • Publish-AWSPowerShellLambda – Publie un script PowerShell pour Lambda.

  • New-AWSPowerShellLambdaPackage – Crée un package de déploiement Lambda qui peut être utilisé dans un système de CI/CD pour le déploiement.

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

Pour créer un nouveau script PowerShell, le charger et le tester, suivez cette procédure :

  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. Exécutez la commande suivante pour créer un exemple de script basé sur le modèle Basic :

    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 be executed as a AWS Lambda function. # # When executing in Lambda the following variables will be 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 will be 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 consignés de votre script PowerShell sont envoyés à CloudWatch Logs, supprimez la mise en commentaire de la ligne Write-Host dans l'exemple de script.

    Pour illustrer comment renvoyer des données à partir de vos fonctions Lambda, ajoutez une nouvelle ligne à la fin du script avec $PSVersionTable. Cela ajoute $PSVersionTable dans le pipeline PowerShell. Une fois que le script PowerShell est terminé, 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. Ensuite, exécutez la commande suivante pour publier le script dans AWS 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 avec la commande de l'interface de ligne de commande AWS invoke.

    > aws lambda invoke --function-name MyFirstPSScript out