Amazon web services 使cloudfront缓存无效

Amazon web services 使cloudfront缓存无效,amazon-web-services,aws-lambda,amazon-cloudfront,aws-codepipeline,Amazon Web Services,Aws Lambda,Amazon Cloudfront,Aws Codepipeline,我想将cloudfront缓存作为codepipeline中的最后一个构建步骤而失效。 我创建了lambda函数(节点): }) Codepipeline reports阶段已成功,但在cloudfront中未创建无效。cloudwatch中没有错误。 在IAM中,我向lambda和codepipeline提供了对cloudfront的完全访问权限。 什么是wrogn?console.log()是你的朋友。修改您的putJob*函数或cloudfront方法回调以进行一些日志记录。谢谢,控制台帮

我想将cloudfront缓存作为codepipeline中的最后一个构建步骤而失效。 我创建了lambda函数(节点):

})

Codepipeline reports阶段已成功,但在cloudfront中未创建无效。cloudwatch中没有错误。 在IAM中,我向lambda和codepipeline提供了对cloudfront的完全访问权限。 什么是wrogn?

console.log()
是你的朋友。修改您的
putJob*
函数或cloudfront方法回调以进行一些日志记录。谢谢,控制台帮助:)结果发现问题出在“Date.now()”中。将其更改为Date.now()+“”。
exports.handler = (event, context, callback) => {
const aws = require('aws-sdk'),
cloudfront = new aws.CloudFront({apiVersion: '2018-06-18'}),
codepipeline = new aws.CodePipeline(),
jobId = event["CodePipeline.job"].id,
paramsCloudFront = {
  DistributionId: 'distr_id',
  InvalidationBatch: {
    CallerReference: `Date.now()`,
    Paths: {
      Quantity: 1,
      Items: ['/*',]
    }
  }
},
putJobSuccess = function(message) {
    var params = {
        jobId: jobId
    };
    codepipeline.putJobSuccessResult(params, (err, data) => {
        if(err) {
            context.fail(err);      
        } else {
            context.succeed(message);      
        }
    });
},
putJobFailure = function(message) {
    var params = {
        jobId: jobId,
        failureDetails: {
            message: JSON.stringify(message),
            type: 'JobFailed',
            externalExecutionId: context.invokeid
        }
    };
    codepipeline.putJobFailureResult(params, (err, data) => {
        context.fail(message);      
    });
}


cloudfront.createInvalidation(paramsCloudFront, (err, data) => {
  if (err) {
    putJobFailure(err)
  } else {
    putJobSuccess(data)
  }
});