Amazon web services 使cloudfront缓存无效
我想将cloudfront缓存作为codepipeline中的最后一个构建步骤而失效。 我创建了lambda函数(节点): }) Codepipeline reports阶段已成功,但在cloudfront中未创建无效。cloudwatch中没有错误。 在IAM中,我向lambda和codepipeline提供了对cloudfront的完全访问权限。 什么是wrogn?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方法回调以进行一些日志记录。谢谢,控制台帮
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)
}
});