Развертывание / публикация нескольких бессерверных проектов lambda за один раз

#asp.net-core #aws-lambda #serverless

#asp.net-ядро #aws-lambda #Бессерверный

Вопрос:

У меня есть файл решения VS и в нем несколько проектов lambda. Чтобы развернуть / опубликовать мою lambda в AWS, мне нужно перейти к отдельному проекту и щелкнуть правой кнопкой мыши, а затем нажать «Опубликовать в AWS Lambda». В моем решении более 10 лямбда-проектов, и мне нужно выполнять это упражнение повторно.

Есть ли какое-либо решение для развертывания всей этой лямбда-функции одним щелчком мыши?

Ответ №1:

Вы должны уметь использовать инструменты AWS PowerShell для создания быстрого скрипта для публикации ваших функций за один запуск

Этих двух функций Publish и Update должно быть достаточно.

Вот пример сценария сценарий PowerShell для публикации одного lambda

 $zipFile = "E:my-awesome-functionrelease.zip"
$zipFileItem = Get-Item -Path $zipFile
$fileStream = $zipFileItem.OpenRead()
$memoryStream = New-Object System.IO.MemoryStream
$fileStream.CopyTo($memoryStream)   

//Check if function exists
$cmdOutput = Get-LMFunction -FunctionName my-awesome-function;

try{
    if($?) {
        "Function exists update the code"               
        Update-LMFunctionCode -FunctionName my-awesome-function -ZipFile $memoryStream -Publish 1

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