Ear*_*rlD 13 amazon-s3 amazon-cloudfront
我在S3和CloudFront中部署了一个AngularJS应用程序.我通过Grunt和Jenkins构建的过程包括一个FileRev步骤,用于唯一地命名我的脚本和供应商JS文件的每个新版本.最后,FileRev还更新了我的'index.html'页面标签,以引用我的脚本和供应商文件的最新版本版本.
一切都很好,除了......
如何让CloudFront立即使我的所有边缘位置的'index.html'无效,而不是以编程方式在每个版本上创建新的失效?
谢谢!
以下是如何以编程方式执行此操作。这应该是您的部署脚本的一部分。我们只会失效,index.html因为我们已经通过文件名对其他资源进行了版本控制:
const aws = require('aws-sdk')
function invalidateIndex () {
const client = new aws.CloudFront({
accessKeyId: process.env.AWS_ACCESS_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
})
const invalidation = client.createInvalidation({
DistributionId: process.env.AWS_CLOUDFRONT_DISTRIBUTION_ID, /* required */
InvalidationBatch: {
/* required */
CallerReference: Date.now() + '', /* required - request ID given by you, any string is okay*/
Paths: {
/* required */
Quantity: 1, /* required */
Items: [
'/',
/* more items */
]
}
}
}, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log('Index was invalidated with invalidation id: ', data.Invalidation.Id); // successful response
})
}
invalidateIndex()
Run Code Online (Sandbox Code Playgroud)
您可以在此处的 API 文档中阅读更多信息:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudFront.html#createInvalidation-property
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |