AWS清除CloudFront缓存

运行之前,提供AWS密钥

import boto3


def find_cloudfront_distribution_id(domain_name, aws_access_key_id, aws_secret_access_key):
    # 创建 CloudFront 资源
    cloudfront = boto3.client('cloudfront', aws_access_key_id=aws_access_key_id,
                              aws_secret_access_key=aws_secret_access_key)

    # 获取所有 CloudFront 分配
    distributions = cloudfront.list_distributions()['DistributionList']['Items']

    for distribution in distributions:
        # 检查分配是否有别名
        if 'Aliases' in distribution and 'Items' in distribution['Aliases']:
            # 检查分配的域名是否包含所提供的域名
            for alias in distribution['Aliases']['Items']:
                if alias == domain_name:
                    return distribution['Id']

    return None


def invalidate_cloudfront_cache(distribution_id, paths, aws_access_key_id, aws_secret_access_key):
    # 创建 CloudFront 客户端
    cloudfront = boto3.client('cloudfront', aws_access_key_id=aws_access_key_id,
                              aws_secret_access_key=aws_secret_access_key)

    # 创建失效批次
    invalidation = {
        'DistributionId': distribution_id,
        'InvalidationBatch': {
            'Paths': {
                'Quantity': len(paths),
                'Items': paths
            },
            'CallerReference': 'unique-identifier'  # 为失效批次提供唯一标识符
        }
    }

    # 提交失效请求
    response = cloudfront.create_invalidation(**invalidation)


   # 检查失效请求是否成功
    if response['ResponseMetadata']['HTTPStatusCode'] == 201:
        print("缓存失效请求成功。")
    else:
        print("缓存失效请求失败。")


# 输入要清理的域名
domain_name = input('请输入需要清理缓存的域名:\n')

# AWS 访问密钥和秘密访问密钥
aws_access_key_id = ''
aws_secret_access_key = ''

# 查找 CloudFront 分配的 ID
distribution_id = find_cloudfront_distribution_id(domain_name, aws_access_key_id, aws_secret_access_key)

if distribution_id:
    # 要失效的路径
    paths_to_invalidate = ['/*']

    # 失效缓存
    invalidate_cloudfront_cache(distribution_id, paths_to_invalidate, aws_access_key_id, aws_secret_access_key)

else:
    print(f"未找到与域名 '{domain_name}' 相关联的 CloudFront 分配")

相关推荐

  1. AWS清除CloudFront缓存

    2024-04-23 08:30:03       33 阅读
  2. AWS Cloudfront支持vuejs的html5模式

    2024-04-23 08:30:03       32 阅读
  3. 如何清除keep-alive缓存

    2024-04-23 08:30:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 08:30:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 08:30:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 08:30:03       82 阅读
  4. Python语言-面向对象

    2024-04-23 08:30:03       91 阅读

热门阅读

  1. 维护网络安全的途径有哪些?

    2024-04-23 08:30:03       39 阅读
  2. axios 实现上传、下载

    2024-04-23 08:30:03       33 阅读
  3. 一键展开或折叠树形表格

    2024-04-23 08:30:03       38 阅读
  4. 【设计模式】11、flyweight 享元模式

    2024-04-23 08:30:03       35 阅读
  5. 【Python-正则表达式】

    2024-04-23 08:30:03       29 阅读
  6. tomcat更换应用目录

    2024-04-23 08:30:03       32 阅读
  7. 浅谈架构方法之时间片轮询

    2024-04-23 08:30:03       31 阅读
  8. openGauss概述

    2024-04-23 08:30:03       37 阅读
  9. 【重学C语言】九、函数

    2024-04-23 08:30:03       38 阅读
  10. internet.getUserEncryptKey提示错误

    2024-04-23 08:30:03       28 阅读
  11. 从零开始:UniApp 项目搭建指南

    2024-04-23 08:30:03       38 阅读
  12. uniapp picker组件实现二级联动

    2024-04-23 08:30:03       31 阅读
  13. Linux搭建NFS服务器

    2024-04-23 08:30:03       36 阅读