Ho cercato di utilizzare AWS Update-LMFunctionCode per distribuire il mio file su una funzione lambda esistente in AWS.In PowerShell, come posso ottenere un memorandtream con codifica Base64 di un file zip locale?
A differenza di Publish-LMFunction dove posso fornire solo un percorso per zipFile (-FunctionZip), Update-LMFunction vuole un memorystream per il suo argomento -Zipfile.
C'è un esempio di caricamento di un file zip locale da disco in un flusso di memoria che funziona? Le mie chiamate iniziali stanno ottenendo gli errori che il file non può essere decompresso ...
$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
}
documentazione per la funzione di PowerShell è qui: http://docs.aws.amazon.com/powershell/latest/reference/items/Update-LMFunctionCode.html anche se vuole vivere in una cornice ...
(. Cordiali saluti, quel blocco è in un più ampio try/catch che cattura quando il Get-LMFunction non riesce a trovare il functionname) –