Cloudfront Create Invalidation Using Lambda Py
codepipeline 에서 s3로 배포 이후에 cloudfront create invalidation 를 수행하는 코드 입니다. 해당 lambda 의 수행권한은 cloudfront 접근 권한이 있어야 합니다.
import json
import boto3
cf = boto3.client('cloudfront')
code_pipeline = boto3.client('codepipeline')
DISTRIBUTION_ID = "XXXXXXXXXXXXXX" # 삭제 하고자 하는 cloudfront id
def create_invalidation():
res = cf.create_invalidation(
DistributionId=DISTRIBUTION_ID,
InvalidationBatch={
'Paths': {
'Quantity': 1,
'Items': [
'/*'
]
},
'CallerReference': str(time.time()).replace(".", "")
}
)
invalidation_id = res['Invalidation']['Id']
return invalidation_id
def lambda_handler(event, context):
id = create_invalidation()
job = event['CodePipeline.job']['id']
if id:
return code_pipeline.put_job_success_result(jobId=job)
else:
return code_pipeline.put_job_failure_result(jobId=job, failureDetails={'message': message, 'type': 'JobFailed'})
Read other posts