代码之家  ›  专栏  ›  技术社区  ›  Anentropic

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

  •  0
  • Anentropic  · 技术社区  · 2 年前

    我有以下代码:

    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,
        },
    )
    

    我已经用不同的args成功地运行了很多次,但这次我得到了错误:

    调用CreateInvalidation操作时发生错误(InvalidArgument):您的请求包含一个或多个无效的无效路径。

    前面的日志行显示:

        "index_paths": [
            "index.html",
            "Movies/index.html"
        ],
    

    这两个路径都存在(aws控制台中已检查bucket)。

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

    对我来说,重写代码是一件痛苦的事,这样它就可以识别creates和updates,而只会使更新无效。此外,即使有更新,我怎么知道它是否已被请求并缓存?

    有人能确认或指出导致这一错误的文件吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Mehmet Güngören    2 年前

    路径应以开头 / .

    使用 index_paths 喜欢

        "index_paths": [
            "/index.html",
            "/Movies/index.html"
        ],
    
    推荐文章