2015-11-20 13 views
9

Po wywołaniu aws lambda get-function --function-name FunctionName zobaczysz klucz . Nie wiem, co to jest Sha256. Nie pasuje do shasum -a 256 FunctionName.zip, gdzie FunctionName.zip jest przesyłanym przeze mnie pakietem.Jak obliczyć kodSha256 pakietu aws do wdrożenia lambda przed przesłaniem

To, co chciałbym móc zrobić, dla istniejącej lambdy, generuje sha256 z kodu, który mam zamiar przesłać, który pasowałby do amazonki sha256, która wraca z get-function. Każda pomoc jest doceniana, ponieważ nie byłem w stanie znaleźć żadnych informacji na ten temat, z wyjątkiem tego, że Amazon powiedział, że jest to "mieszanie SHA256 pakietu wdrożeniowego"

Odpowiedz

12

OK, udało mi się to ustalić. Wszystkie metody generowania skrótu sha 256 wyprowadzają go na hex, ale amazon zwraca go w base64.

Aby całkowicie odpowiedzieć na własne pytanie, oto jak (z węzłem) sprawdzić, czy masz zamiar przesłać ten sam plik ZIP.

#!/usr/bin/env node 
var crypto = require('crypto'); 
var fs = require('fs'); 
var path = require('path'); 
var AWS = require('aws-sdk'); 
var lambda = new AWS.Lambda({ 
    region: 'us-west-2' 
}); 

var lambdaName = 'CreatePost'; 
var filePath = path.resolve(__dirname, 'tmp/create-post.zip'); 

lambda.getFunction({ 
    FunctionName: lambdaName 
}, function (error, data) { 
    if (error) { 
     console.error(error); 
     return process.exit(1); 
    } 
    var lambdaSha256 = data.Configuration.CodeSha256; 

    var shasum = crypto.createHash('sha256'); 
    fs.createReadStream(filePath) 
    .on("data", function (chunk) { 
     shasum.update(chunk); 
    }) 
    .on("end", function() { 
     var sha256 = shasum.digest('base64'); 
     if (sha256 === lambdaSha256) { 
      console.log("No need to upload, sha hashes are the same"); 
     } else { 
      console.log("That needs to be uploaded again son.") 
     } 
     process.exit(); 
    }); 
}); 
5

Jak wspomniano powyżej, należy kodować w base64. Oto bash one-liner:
openssl dgst -sha256 -binary _your_file_path_ | openssl enc -base64

Powiązane problemy