我有以下代码:
logger.info(
"Invalidating cache...",
extra={
"bucket": event.bucket_name,
"distribution_id": DISTRIBUTION_ID,
"index_paths": index_paths,
},
)
cloudfront.create_invalidation(
DistributionId=DISTRIBUTION_ID,
InvalidationBatch={
"Paths": {"Quantity": len(index_paths), "Items": index_paths},
"CallerReference": context.aws_request_id,
},
)
我已经使用不同的参数成功运行了很多次,但这次我收到了错误:
调用CreateInvalidation操作时发生错误(InvalidArgument):您的请求包含一个或多个无效失效路径。
前面的日志行显示:
"index_paths": [
"index.html",
"Movies/index.html"
],
这些路径都存在(在 aws 控制台中检查存储桶)。
其中一个是新创建的,我怀疑这可能是问题所在?即文件尚未被请求和缓存?
重写代码以便它可以识别创建与更新并仅使更新无效,这对我来说是一个痛苦。另外,即使有更新,我如何知道它是否已被请求并缓存?
任何人都可以确认或指出导致此错误原因的文档吗?
路径应以
/
开头。
使用
index_paths
之类的。
"index_paths": [
"/index.html",
"/Movies/index.html"
],