Definir o manipulador de funções do Lambda no PowerShell - AWS Lambda

Definir o manipulador de funções do Lambda no PowerShell

Quando uma função do Lambda é invocada, o manipulador do Lambda chama o script do PowerShell.

Quando o script do PowerShell é invocado, as seguintes variáveis são predefinidas:

  • $LambdaInput : um PSObject que contém a entrada para o manipulador. Essa entrada pode ser os dados do evento (publicados por uma origem de evento) ou uma entrada personalizada fornecida por você, tal como uma string ou qualquer objeto de dados personalizado.

  • $LambdaContext: um objeto Amazon.Lambda.Core.ILambdaContext que você pode usar para acessar informações sobre a invocação atual, como o nome da função atual, limite de memória, tempo de execução restante e registro em log.

Por exemplo, considere o código de exemplo em PowerShell a seguir.

#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'} Write-Host 'Function Name:' $LambdaContext.FunctionName

Esse script retorna a propriedade FunctionName que é obtida a partir da variável $LambdaContext.

nota

É necessário usar a instrução #Requires nos seus scripts do PowerShell para indicar os módulos dos quais os seus scripts dependem. Essa declaração executa duas tarefas importantes. 1) Ele comunica a outros desenvolvedores quais módulos o script usa e 2) identifica os módulos dependentes que as ferramentas do AWS PowerShell precisam empacotar com o script como parte da implantação. Para obter mais informações sobre a instrução #Requires no PowerShell, consulte About requires. Para obter mais informações sobre os pacotes de implantação do PowerShell, consulte Implantar funções do Lambda para PowerShell com arquivos .zip.

Quando a sua função do Lambda para PowerShell usa cmdlets do AWS PowerShell, certifique-se de definir uma instrução #Requires que faça referência ao módulo AWSPowerShell.NetCore, que oferece suporte ao PowerShell Core e não ao módulo AWSPowerShell, que apenas oferece suporte para o Windows PowerShell. Além disso, certifique-se de usar a versão 3.3.270.0 ou mais recente do AWSPowerShell.NetCore, que otimiza o processo de importação de cmdlets. Se você usar uma versão mais antiga, haverá mais partidas a frio. Para obter mais informações, consulte AWS Tools for PowerShell.

Retorno de dados

Algumas invocações do Lambda são destinadas a retornar dados ao chamador. Por exemplo, se uma invocação tiver ocorrido em resposta a uma solicitação do API Gateway, nossa função do Lambda precisará retornar essa resposta. Para o PowerShell Lambda, o último objeto adicionado ao pipeline do PowerShell são os dados de retorno da invocação do Lambda. Se o objeto for uma string, os dados serão retornados no estado em que se encontram. Caso contrário, o objeto será convertido em JSON usando o cmdlet ConvertTo-Json.

Por exemplo, considere a seguinte instrução PowerShell, que adiciona $PSVersionTable ao pipeline do PowerShell:

$PSVersionTable

Depois que o script PowerShell estiver finalizado, o último objeto no pipeline do PowerShell será os dados de retorno da função do Lambda. $PSVersionTable é uma variável global do PowerShell que também fornece informações sobre o ambiente de execução.