【问题标题】:Deleting a CloudFront Distribution with boto3使用 boto3 删除 CloudFront 分配
【发布时间】:2017-09-01 02:44:08
【问题描述】:

我正在编写需要删除网站的云端分发的拆卸脚本。看来您必须关注

  1. 禁用分发
  2. 等待分发被禁用(部署)
  3. 删除分布

但是看起来服务员在第 2 步失败了,并且 delete_distribution 失败,除非分发被禁用。

result = client.update_distribution(
    DistributionConfig=disabledConf, 
    Id=dist_id, 
    IfMatch=matchid)
waiter = client.get_waiter('distribution_deployed')
print("Waiting for disabling the distribution")
waiter.wait(Id=dist_id)  # Throws here
client.delete_distribution(Id=dist_id, IfMatch=result['ETag'])

有人知道如何让它与 boto3 一起工作吗?

【问题讨论】:

    标签: python amazon-cloudfront boto3


    【解决方案1】:

    我刚刚遇到了这个确切的问题。问题在于 Boto3 没有禁用分发的等待功能。来自“distribution_deployed”等待函数上的docs

    每 60 秒轮询一次 CloudFront.Client.get_distribution(),直到 达到成功状态。检查失败 25 次后返回错误。

    这意味着它不适用于禁用分发。为了解决这个问题,我使用了 datetime 和 time.sleep 函数来实现我自己的服务员。

    import time
    from datetime import datetime,timedelta
    import sys
    
    #disable distribution
    result = client.update_distribution(
        DistributionConfig=disabledConf, 
        Id=dist_id, 
        IfMatch=matchid)
    
    #wait for distribution to disable....
    print("Waiting for disabling the distribution...This may take a while....")
    timeout_mins=60 
    wait_until = datetime.now() + timedelta(minutes=timeout_mins)
    notFinished=True
    eTag=""
    while(notFinished):
        #check for timeout
        if wait_until < datetime.now():
            #timeout
            print("Distribution took too long to disable. Exiting")
            sys.exit(1)
    
        status=client.get_distribution(Id=dist_id)
        if(status['Distribution']['DistributionConfig']['Enabled']==False and status['Distribution']['Status']=='Deployed'):
            eTag=status['ETag']
            notFinished=False
    
        print("Not completed yet. Sleeping 60 seconds....")
        time.sleep(60) 
    
    #delete distribution
    client.delete_distribution(Id=dist_id, IfMatch=eTag)   
    

    所以除了检查是否禁用之外,还需要查看更改是否生效。为此,请确保“状态”已更改为“已部署”(在更改期间将处于进行中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2016-01-27
      • 2020-07-29
      • 1970-01-01
      相关资源
      最近更新 更多