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:
-
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 ...
-
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)
-
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
-
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. -
Invoque sua função usando o comando
invoke
da AWS Command Line Interface (AWS CLI).> aws lambda invoke --function-name MyFirstPSScript out