boto3 cloudfront.create_invalidation“您的请求包含一个或多个无效失效路径”

问题描述 投票:0回答:1

我有以下代码:

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 控制台中检查存储桶)。

其中一个是新创建的,我怀疑这可能是问题所在?即文件尚未被请求和缓存?

重写代码以便它可以识别创建与更新并仅使更新无效,这对我来说是一个痛苦。另外,即使有更新,我如何知道它是否已被请求并缓存?

任何人都可以确认或指出导致此错误原因的文档吗?

boto3 amazon-cloudfront
1个回答
0
投票

路径应以

/
开头。

使用

index_paths
之类的。

    "index_paths": [
        "/index.html",
        "/Movies/index.html"
    ],
© www.soinside.com 2019 - 2024. All rights reserved.