我已遵循此blog使用存储在S3存储桶中的jar文件来更新lambda函数的代码。执行成功,但未更新目标lambda函数的代码
代码段
console.log('Loading function');
var AWS = require('aws-sdk');
var lambda = new AWS.Lambda();
exports.handler = function(event, context) {
var functionName = "runJarFile";
var bucket = "jarfiletest2";
var key = "lambda-java-example-0.0.1-SNAPSHOT.jar.zip";
console.log("uploaded to lambda function: " + functionName);
var params = {
FunctionName: functionName,
S3Key: key,
S3Bucket: bucket,
Publish: true
};
lambda.updateFunctionCode(params, function(err, data) {
if (err) {
console.log(err, err.stack);
context.fail(err);
} else {
console.log(data);
context.succeed(data);
}
});
};
如果不了解目标函数的详细信息,就很难对此发表评论。在调用GetFunction之前和之后,该Lambda的UpdateFunctionConfig
API调用的输出是什么?
我有兴趣查看代码的SHA-256哈希值,以及在调用UpdateFunctionConfig之前和之后该API调用的最后修改的时间戳:
{
...
"CodeSha256": "5tT2qgzYUHoqwR616pZ2dpkn/0J1FrzJmlKidWaaCgk=",
"LastModified": "2019-09-24T18:20:35.054+0000"
...
}
如果值完全相同,是否可以按照博客文章添加此检查,以查看存储桶和对象是否存在?
if (bucket == "YOUR_BUCKET_NAME" && key == "YOUR_CODE.zip" && version) {
// your code
} else {
context.succeed("skipping zip " + key + " in bucket " + bucket + " with version " + version);
}