Implemente funciones PowerShell Lambda con archivos de archivos.zip - AWS Lambda

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implemente funciones PowerShell Lambda con archivos de archivos.zip

Un paquete de despliegue para el PowerShell tiempo de ejecución contiene el PowerShell script, PowerShell los módulos necesarios para el PowerShell script y los ensamblajes necesarios para alojar PowerShell Core.

Creación de la función de Lambda

Para empezar a escribir e invocar un PowerShell script con Lambda, puede usar New-AWSPowerShellLambda el cmdlet para crear un script de inicio basado en una plantilla. Puede utilizar el cmdlet Publish-AWSPowerShellLambda para implementar su script en Lambda. A continuación, puede probar el script ya sea a través de la línea de comandos o de la consola de Lambda.

Para crear un PowerShell script nuevo, cargarlo y probarlo, haga lo siguiente:

  1. Para ver la lista de plantillas disponibles, ejecute el siguiente comando:

    PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
  2. Para crear un script de ejemplo basado en la plantillaBasic, ejecute el siguiente comando:

    New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic

    Se creará un nuevo archivo denominado MyFirstPSScript.ps1 en un nuevo subdirectorio del directorio actual. El nombre del directorio se basa en el parámetro -ScriptName. Puede utilizar el parámetro -Directory para elegir otro directorio.

    Puede ver que el nuevo archivo tiene el siguiente contenido:

    # 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. Para ver cómo se envían los mensajes de registro de tu PowerShell script a Amazon CloudWatch Logs, quita el comentario de la Write-Host línea del script de muestra.

    Para demostrar cómo puede devolver los datos de sus funciones de Lambda, agregue una nueva línea al final del script con $PSVersionTable. Esto añade el $PSVersionTable a la PowerShell canalización. Una vez finalizado el PowerShell script, el último objeto de la PowerShell canalización son los datos de retorno de la función Lambda. $PSVersionTablees una variable PowerShell global que también proporciona información sobre el entorno de ejecución.

    Después de realizar estos cambios, las dos últimas líneas del script de muestra tienen un aspecto similar al siguiente:

    Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
  4. Después de editar el archivo MyFirstPSScript.ps1, cambie el directorio a la ubicación del script. Después, ejecute el siguiente comando para publicar el script en Lambda:

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

    Tenga en cuenta que el parámetro -Name especifica el nombre de la función de , que aparece en la consola de Lambda. Puede utilizar esta función para invocar manualmente a su script.

  5. Invoque su función con el comando invoke AWS Command Line Interface (AWS CLI).

    > aws lambda invoke --function-name MyFirstPSScript out