방금이 정확한 문제가 발생했습니다. 문제는 Boto3에 배포 비활성화를위한 대기 기능이 없다는 점입니다. 성공 상태에 도달 할 때까지
설문 조사의 CloudFront.Client.get_distribution() 60 초마다 다음 "distribution_deployed"에 docs에서 기능을 기다립니다. 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)
따라서 비활성화되어 있는지 확인하는 것 외에 변경 사항이 적용되었는지 확인해야합니다. "Status (상태)"가 'Deployed (배포 됨)'로 변경되도록하십시오 (변경 중에 진행 중임)