创建CloudFront失效的Python脚本

Amazon CloudFront失效功能使您可以在对象过期之前将其从CloudFront缓存中删除。 它允许您从缓存中删除特定对象或使用

通配符删除多个对象。 您也可以通过对无效请求使用“ / *”参数来使所有对象无效。

创建CloudFront失效的Python脚本

Boto3是适用于Python编程语言的AWS开发工具包。 它允许Python开发人员编写使用CloudFront,S3和Ec2等服务的程序。

pip install boto3       ##For Python 2 or default pip3 install boto3      ##For Python 3 

首先,您需要根据系统上安装的Python版本安装Boto3 Python库。 我们建议使用Python 3在以下脚本中运行。

接下来,创建具有以下内容的Python脚本。 [
‘/*’
]
import boto3导入时间#创建CloudFront客户端cf = boto3.client(’cloudfront’)#输入原始名称DISTRIBUTION_ID =“ UJS7S8D8FD8FDF”#创建CloudFront失效def create_invalidation():res = cf.create_invalidation(DistributionId = DISTRIBUTION_ID,InvalidationBatch = {‘路径”:{“数量”:1,“项目”:[‘Invalidation’][‘Id’]

},’CallerReference’:str(time.time())。replace(“。”,“”)}))invalidation_id = res

return invalidation_id#创建CloudFront无效ID = create_invalidation()print(“使用ID成功创建了无效:” + id)123456789101112131415161718192021222324252627282930 [                    ‘/*’                ] import boto3import time#创建CloudFront clientcf = boto3.client(’cloudfront’)#输入原始名称DISTRIBUTION_ID =“ UJS7S8D8FD8FDF”#创建CloudFront invalidationdef create_invalidation():res = cf.create_invalidation(DistributionId = DISTRIBUTION_ID,InvalidationBatch = {‘Paths’: {‘数量’:1,’物品’:[‘Invalidation’][‘Id’] },’CallerReference’:str(time.time())。replace(“。”,“”)}))invalidation_id = res

return invalidation_id#创建CloudFront Invalidationid = create_invalidation()print(“使用ID成功创建了无效:” + id)

您必须将DISTRIBUTION_ID值更改为实际的CloudFront发行名称。 要查找分发名称,请访问CloudFront Web界面。 您可以在“ ID”列下找到“分发ID”。

python3 create_invalidation.py

现在,从终端执行Python脚本以创建无效请求。

Invalidation created successfully with Id: I3HHNHJ0AF0ILQ

成功执行后,您将在屏幕上看到如下消息:

基于缓存的数据,Invalidation请求可能需要一些时间。 您可以在CloudFront Web界面上看到失效请求状态。

创建CloudFront失效的Python脚本

要查看无效状态,请转到CloudFront Web界面。 打开CloudFront发行版,然后导航到“失效”选项卡。 请参见以上输出中显示的无效请求ID的状态。

为所有CloudFront分配的创建无效

您还可以使用以下Python脚本为AWS账户的选定区域中可用的所有CloudFront分配创建Invalidation请求。 [
‘/*’
]
import boto3导入时间#创建CloudFront客户端cf = boto3.client(’cloudfront’)#创建CloudFront无效def create_invalidation(DISTRIBUTION_ID):res = cf.create_invalidation(DistributionId = DISTRIBUTION_ID,InvalidationBatch = {‘Paths’:{‘Quantity’: 1,“项目”:[‘Invalidation’][‘Id’]

},’CallerReference’:str(time.time())。replace(“。”,“”)}))invalidation_id = res[‘DistributionList’][‘Quantity’] return invalidation_id#遍历所有发行版distributions = cf.list_distributions()(如果发行版)[‘DistributionList’][‘Items’]> 0:用于分发中的分发[‘Id’]:id = create_invalidation(分布[‘Id’])print(“为-” +分发成功创建了无效

)else:print(“未找到CloudFront发行版。”)12345678910111213141516171819202122232425262728293031323334 [                    ‘/*’                ] import boto3import time#创建CloudFront clientcf = boto3.client(’cloudfront’)#创建CloudFront invalidationdef create_invalidation(DISTRIBUTION_ID):res = cf.create_invalidation(DistributionId = DISTRIBUTION_ID,InvalidationBatch = {‘Paths’:{‘Quantity’:1,’项目’:[‘Invalidation’][‘Id’] },’CallerReference’:str(time.time())。replace(“。”,“”)}))invalidation_id = res[‘DistributionList’][‘Quantity’] return invalidation_id#遍历所有发行版如果发行版,则循环分发== cf.list_distributions()[‘DistributionList’][‘Items’]> 0:用于分发中的分发[‘Id’]:id = create_invalidation(分布[‘Id’])print(“为-” +分发成功创建了无效

)否则:print(“未找到CloudFront分配。”)

结论

本教程使用Python脚本帮助您创建CloudFront失效请求。

Sidebar