2017-08-07 5 views
0

J'ai construit un CodePipeline avec une étape CodeBuild qui génère en sortie un fichier "build.json" avec une seule information d'étiquette de ligne. Ce fichier est l'entrée pour une prochaine étape Lambda dans la Codepipeline. La fonction Lambda veut lire les informations d'étiquette et ensuite faire quelque chose avec elle. Par conséquent, je lis l'objet S3 avec s3 :: getobject et comme réponse que je reçois:Déchiffrer le paramètre d'entrée dans la fonction Lambda dans AWS Codepipeline

{ 
"AcceptRanges": "bytes", 
"LastModified": "2017-08-07T00:25:22.000Z", 
"ContentLength": 158, 
"ETag": "\"4444a193ad79ffe0ec0bd51ce7cf297c\"", 
"ContentType": "", 
"ServerSideEncryption": "aws:kms", 
"Metadata": { 
    "codebuild-content-sha256": "fa85881e29d5b68464b078243ac23754189741e244bbf2d3748c02d97885ff51", 
    "codebuild-content-md5": "44444449e8f4b830a487b86e1e94c0" 
}, 
"SSEKMSKeyId": "arn:aws:kms:eu-central-1:813287844011:key/4444444-0db2-4c3c-b24e-20ff7bbe206a", 
"Body": { 
    "type": "Buffer", 
    "data": [ 
     80, 
     75, 
     3,...]}} 

lorsque j'utilise le contenu et l'envoyer à kms de déchiffrer comme:

kms.decrypt({ CiphertextBlob: mydata.Metadata["codebuild-content-sha256"] }, function (err, kmsData) { 
if (err) { 
    console.log("ERROR " + err); 
} else { 
    console.log("SUCCESS"); 
} 

Je ne reçois que: ERREUR InvalidCiphertextException: null.

J'ai également essayé de fournir certaines des autres valeurs comme Encryptioncontext, mais je n'ai pas eu de chance.

Merci.

Répondre