Próbuję użyć aktualizacji AWS-LMFunctionCode do wdrożenia mojego pliku do istniejącej funkcji lambda w AWS.W PowerShell, w jaki sposób mogę uzyskać kod pamięci Base64 z lokalnym plikiem zip?
W odróżnieniu od funkcji Publish-LMFunction, w której mogę podać tylko ścieżkę do pliku zipFile (-FunctionZip), funkcja Update-LMFunction żąda strumienia pamięci dla argumentu -Zipfile.
czy istnieje przykład ładowania lokalnego pliku zip z dysku do działającego strumienia pamięci? Moje pierwsze rozmowy są coraz błędy, że plik nie może być rozpakowany ...
$deployedFn = Get-LMFunction -FunctionName $functionname
"Function Exists - trying to update"
try{
[system.io.stream]$zipStream = [system.io.File]::OpenRead($zipFile)
[byte[]]$filebytes = New-Object byte[] $zipStream.length
[void] $zipStream.Read($filebytes, 0, $zipStream.Length)
$zipStream.Close()
"$($filebytes.length)"
$zipString = [System.Convert]::ToBase64String($filebytes)
$ms = new-Object IO.MemoryStream
$sw = new-Object IO.StreamWriter $ms
$sw.Write($zipString)
Update-LMFunctionCode -FunctionName $functionname -ZipFile $ms
}
catch{
$ErrorMessage = $_.Exception.Message
Write-Host $ErrorMessage
break
}
docs dla funkcji PowerShell jest tutaj: http://docs.aws.amazon.com/powershell/latest/reference/items/Update-LMFunctionCode.html choć chce żyć w ramce ...
(. FYI, że blok jest w większej try/catch, że połowy, kiedy Get-LMFunction nie znajdzie functionName) –