Публикация лямбда-функции в AWS

Я пытаюсь опубликовать новую функцию Lambda, если она еще не существует. Обновление работает отлично, и я могу обновить его по своему желанию. Однако, когда я пытаюсь выполнить команду "Опубликовать", я продолжаю получать сообщение об ошибке Member must not be null

$zipFilePath = "E:\ProductName-Dev\release.zip"
$zipFileItem = Get-Item -Path $zipFilePath
$fileStream = $zipFileItem.OpenRead()
$memoryStream = New-Object System.IO.MemoryStream
$fileStream.CopyTo($memoryStream)   

$cmdOutput = Get-LMFunction -FunctionName new-extract;

try{
    if($?) {
        "lambda function already in AWS"               
        Update-LMFunctionCode -FunctionName new-extract -ZipFile $memoryStream -Publish 1

    } else {
        "need to publish new lambda function"           
        Publish-LMFunction -FunctionName new-extract -FunctionZip $zipFilePath -Handler exports.handler -Role arn:aws:iam::0000000:role/my-extract -Region us-east-1 
    }
}
finally {
    $fileStream.Close()
}

Если я запускаю Publish-LMFunction без всех параметров и ввожу данные вручную, я все равно получаю сообщение об ошибке. Есть что-то очевидное, что я путаюсь? Я считаю, что у меня есть все 4 обязательных поля, добавленные в мою функцию публикации. Я также могу создать их в веб-консоли, поэтому я не думаю, что это проблема учетных данных.


person Jon Harding    schedule 26.10.2016    source источник


Ответы (1)


Мне просто не хватало параметра Runtime

Publish-LMFunction -FunctionName $FunctionName -FunctionZip $zipFilePath -Handler exports.handler -Role arn:aws:iam:$AccountNumber:role/$RoleName -Region $Region -Runtime nodejs4.3

В документации указано, что это требуется, но когда вы пишете в Powershell ISE, звездочка рядом с полем не ставится.

person Jon Harding    schedule 28.10.2016