Сценарий PowerShell Core, развернутый как функция AWS Lambda, не может удаленно подключиться к экземпляру Windows EC2 с помощью Commandlet new-pssession

AWS Недавно объявил о поддержке Lambda для PowerShell Core. Ссылочный URL-адрес https://aws.amazon.com/blogs/developer/announcing-lambda-support-for-powershell-core/

Выполнил шаги, указанные в URL-адресе, и развернул ниже сценарий Powershell Core как лямбда-функцию.

Сценарий:

#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.335.0'}

$pw = convertto-securestring -AsPlainText -Force -String "Password"
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "UserID",$pw

$s = new-pssession -computername "AWSECS2DNS" -credential $cred

Invoke-Command -Session $s -ScriptBlock {Get-Service}

Когда я запускаю функцию лямбда, она не работает. Этот сценарий Powershell пытается удаленно подключиться к экземпляру Windows EC2 и запустить командлет «Get-Service». Он терпит неудачу в Commandlet "new-pssession". Тот же сценарий отлично работает в Windows PowerShell компьютера. Но не работает при запуске в качестве функции AWS Lambda. Это происходит, когда функция AWS Lambda работает в среде Linux. Пожалуйста помоги.

Ошибка:

{
  "errorType": "DllNotFoundException",
  "errorMessage": "Unable to load shared library 'libpsrpclient' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibpsrpclient: cannot open shared object file: No such file or directory",
  "stackTrace": [
    "at Amazon.Lambda.PowerShellHost.PowerShellFunctionHost.ExecuteFunction(Stream inputStream, ILambdaContext context)",
    "at lambda_method(Closure , Stream , Stream , LambdaContextInternal )"
  ]
}

person parthasarathy velusamy    schedule 04.10.2018    source источник


Ответы (1)


Поработал со службой поддержки AWS и получил следующий ответ:

«После дальнейшего тестирования сервисная группа Lambda подтвердила, что New-PSSession в настоящее время не поддерживается в лямбда-среде. Это связано с тем, как PS Remoting работает в ядре PowerShell для Linux».

Очевидно, это функция в дорожной карте, поэтому мы можем ее увидеть в конце концов.

person knabb    schedule 15.11.2018
comment
Я этого не сделал. Как я уже упоминал выше, он не поддерживается. Вместо этого я использовал не лямбда-подход. - person knabb; 17.06.2019
comment
Есть идеи, реализована ли эта функция? Мне нужно сделать что-то подобное, и мне интересно, смогу ли я добиться этого с помощью Lambda? Я разместил вопрос stackoverflow.com/questions/61072978/ - person Maverick Riz; 08.04.2020