Implemente funções PowerShell Lambda com arquivos de arquivos.zip - AWS Lambda

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implemente funções PowerShell Lambda com arquivos de arquivos.zip

Um pacote de implantação para o PowerShell tempo de execução contém seu PowerShell script, os PowerShell módulos necessários para seu PowerShell script e os assemblies necessários para PowerShell hospedar o Core.

Criar a função do Lambda

Para começar a escrever e invocar um PowerShell script com o Lambda, você pode usar New-AWSPowerShellLambda o cmdlet para criar um script inicial com base em um modelo. Você pode usar o cmdlet Publish-AWSPowerShellLambda para implantar seu script no Lambda. Em seguida, você pode testar seu script na linha de comando ou no console do Lambda.

Para criar um novo PowerShell script, carregá-lo e testá-lo, faça o seguinte:

  1. Execute o seguinte comando para exibir a lista de modelos disponíveis:

    PS C:\> Get-AWSPowerShellLambdaTemplate Template Description -------- ----------- Basic Bare bones script CodeCommitTrigger Script to process AWS CodeCommit Triggers ...
  2. Para criar um script de amostra com base no modelo Basic, execute o seguinte comando:

    New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic

    Um novo arquivo chamado MyFirstPSScript.ps1 é criado em um novo subdiretório do diretório atual. O nome do diretório é baseado no parâmetro -ScriptName. Você pode usar o parâmetro -Directory para escolher um diretório alternativo.

    É possível ver que o novo arquivo tem o seguinte conteúdo:

    # 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 como as mensagens de log do seu PowerShell script são enviadas para o Amazon CloudWatch Logs, remova o comentário da Write-Host linha do script de amostra.

    Para demonstrar como você pode retornar dados das suas funções do Lambda, adicione uma nova linha no final do script com $PSVersionTable. Isso adiciona o $PSVersionTable ao PowerShell pipeline. Depois que o PowerShell script for concluído, o último objeto no PowerShell pipeline são os dados de retorno para a função Lambda. $PSVersionTableé uma variável PowerShell global que também fornece informações sobre o ambiente em execução.

    Depois de fazer essas alterações, as duas últimas linhas do script de amostra terão esta aparência:

    Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5) $PSVersionTable
  4. Depois de editar o arquivo MyFirstPSScript.ps1, altere o diretório para o local do script. Em seguida, execute o seguinte comando para publicar o script no Lambda:

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

    Observe que o parâmetro -Name especifica o nome da função do Lambda, que aparece no console do Lambda. Você pode usar essa função para chamar seu script manualmente.

  5. Invoque sua função usando o comando invoke da AWS Command Line Interface (AWS CLI).

    > aws lambda invoke --function-name MyFirstPSScript out