람다 함수 생성

CloudFrontFullAccess 정책을 붙인다.

import json
import boto3
import string
import random

def lambda_handler(event, context):
    # Boto3 클라이언트 생성
    client = boto3.client("cloudfront")

    # 무효화 요청 생성
    distribution_id = "E3MS846HWLP2TH"  # CloudFront 배포 ID
    invalidation_paths = ["/*"]  # 무효화할 경로 지정
    invalidation_quantity = len(invalidation_paths)

    if invalidation_quantity > 0:
        invalidation_batch = {
            "Paths": {"Quantity": invalidation_quantity, "Items": invalidation_paths},
            "CallerReference": ''.join([random.choice(string.ascii_lowercase) for i in range(10)]),  # 고유한 호출자 참조 값을 제공합니다.
        }

        # CloudFront 무효화 요청 생성
        response = client.create_invalidation(DistributionId=distribution_id, InvalidationBatch=invalidation_batch)

        return {"statusCode": 200, "body": json.dumps("Success!")}
    else:
        return {"statusCode": 500, "body": json.dumps("Fail!")}

S3 이벤트 알림 생성