Python | aws create_invalidation

보람·2022년 9월 18일
0

Python

목록 보기
2/4

사전작업

create_invalidation 이란?

객체 무효화라고 하는 create_invalidation CloudFront에서 설정해놓은 경로의 캐시를 삭제후 원래 출처로부터 정보를 가져와 캐싱하는 것이다.

AWS CloudFront로 보면 원래 출처가 s3이고 CloudFront 에서 어떤 경로에 대한 객체무효화 처리를 하면 s3에 존재하는 정보를 가져와 다시 캐싱처리하는 것!

s3 파일이 수정됐다면 원래 캐싱 정보를 삭제하고 새로 캐싱처리를 할 때 사용할 수 있다.

boto3로 cloudfront 연결

  • 파이썬에서는 boto3 라이브러리를 사용하여 aws s3 나 cloudfront에 접근할 수 있다.
  • 설치방법은 위 awscli, boto3, dotenv 설치 글을 확인한다.

create_invalidation 예시

import os
from dotenv import load_dotenv
import boto3

load_dotenv()

paths = [ "file path" ] 

create_invalidation(paths)

def create_invalidation(paths, distribution_id=os.environ.get('DISTRIBUTION_ID')):
    cf = boto3.client('cloudfront')

    try:
        response = cf.create_invalidation(
            DistributionId=distribution_id,
            InvalidationBatch={
                'Paths': {
                    'Quantity': len(paths),
                    'Items': paths
                },
                'CallerReference': str(time.time()).replace(".", "")
            }
        )
        return True
    except:
        return False

options

  • DistributionId : 클라우드프론트 고유아이디
  • Quantity : 무효화할 경로 갯수
  • Items : 경로 배열
  • CallerReference : 중복호출되지 않도록 고유한 값을 넣어야함!!
profile
백엔드 개발자

0개의 댓글