J'ai essayé d'utiliser AWS Update-LMFunctionCode pour déployer mon fichier sur une fonction lambda existante dans AWS.Dans Powershell, comment puis-je obtenir un flux de mémoire Base64encoded d'un fichier zip local?
Différent de la fonction Publish-LMFunction où je peux fournir juste un chemin vers le fichier zip (-FunctionZip), la fonction Update-LMF souhaite un flux de mémoire pour son argument -Zipfile.
Y at-il un exemple de chargement d'un fichier zip local à partir du disque dans un flux de mémoire qui fonctionne? Mes premiers appels deviennent des erreurs que le fichier ne peut pas être décompressé ...
$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 pour la fonction Powershell est ici: http://docs.aws.amazon.com/powershell/latest/reference/items/Update-LMFunctionCode.html bien qu'il veut vivre dans un cadre ...
(. FYI, ce bloc est dans un plus grand try/catch qui attire quand le Get-LMFunction ne parvient pas à trouver le functionname) –