繁体   English   中英

aws Lambda 在 S3 上传时使 CloudFront 无效

[英]aws Lambda to invalidate CloudFront on S3 upload

我有 10-50 个文件同时上传。 Lambda 为每个更新的文件触发一个事件(如果文件大小发生变化)。

因此,我想在上传结束时运行一次通配符“*”而不是一个一个地使 50 倍无效。

任何人都可以阐明如何实现这一目标? 谢谢!

如果我正确理解你的问题,你的 lambda 函数知道 CloudFront 是否应该失效,但不知道什么时候应该发生这种情况。

在这种情况下,您可以返回一个布尔标志(例如, mustInvalidate )作为响应的一部分,以指示应创建无效请求。 然后,您的应用程序(或启动批量上传请求的任何内容)可以在批量上传完成后立即创建/target-location/*失效请求。

在您的 Lambda 函数中,使用适用于 CloudFrontAWS 开发工具包通过通配符“/*”使分配无效。

var params = {
  DistributionId: 'STRING_VALUE', /* required */
  InvalidationBatch: { /* required */
    CallerReference: 'STRING_VALUE', /* required */
    Paths: { /* required */
      Quantity: 0, /* required */
      Items: [
        'STRING_VALUE',
        /* more items */
      ]
    }
  }
};
cloudfront.createInvalidation(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

注意:确保附加到 Lambda 函数的 IAM 角色具有执行无效操作所需的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM