lambda中的UpdateFunctionCode不会更新代码

问题描述 投票:0回答:1

我已遵循此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);
            }
        });
};

Response在此先感谢

amazon-web-services lambda
1个回答
0
投票

如果不了解目标函数的详细信息,就很难对此发表评论。在调用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);
}
© www.soinside.com 2019 - 2024. All rights reserved.