Boto3를 사용한 무효화 AWS CDN

  • 이 게시물에서는 만료되기 전에 CloudFront 에지 캐시에서 파일을 제거하는 방법에 대해 설명합니다. Python boto3

  • 파일을 무효화하려면 개별 파일의 경로 또는 * 와일드카드로 끝나는 경로를 지정합니다. 이 경로는 다음 예와 같이 하나의 파일 또는 여러 파일에 적용될 수 있습니다.
  • /images/image1.jpg
  • /images/image*
  • /images/*

  • Python boto3 사용invalidatecdn_demo.py

  • import boto3
    import time
    import sys
    
    
    """ Invalidate CDN at s3://static/demo/src """
    DISTRIBUTION_ID = 'A1AA1AA11A11AA'
    
    client = boto3.client('cloudfront')
    
    
    def create_invalidation():
        res = client.create_invalidation(
            DistributionId=DISTRIBUTION_ID,
            InvalidationBatch={
                'Paths': {
                    'Quantity': 1,
                    'Items': [
                        '/demo/src/*'
                    ]
                },
                'CallerReference': str(time.time()).replace(".", "")
            }
        )
        invalidation_id = res['Invalidation']['Id']
        return invalidation_id
    
    
    def get_invalidation_status(inval_id):
        res = client.get_invalidation(
            DistributionId=DISTRIBUTION_ID,
            Id=inval_id
        )
        return res['Invalidation']['Status']
    
    
    def run():
        the_id = create_invalidation()
        count = 0
        while True:
            status = get_invalidation_status(the_id)
            if status == 'Completed':
                print("Completed, id: {}".format(the_id))
                break
            elif count < 10:
                count += 1
                time.sleep(30)
            else:
                print("Timeout, please check CDN")
                sys.exit(1)
    
    
    if __name__ == '__main__':
        run()
    
    


  • 실행

  • ~()⚡ $ python invalidatecdn_demo.py 
    Completed, id: I1CLODB5ZXEQUK
    



  • 결과
  • 진행 중

  • 완료


  • 참조: https://github.com/vumdao/invalidate-cdn/tree/master
  • 좋은 웹페이지 즐겨찾기