Macro is available in AWS Serverless Repository as wrzasqpl-cform-cloudfront-invalidation
application.
You can deploy it using CloudFormation by referring to repository:
WrzasqPlCformCloudFrontInvalidation: Type: "AWS::Serverless::Application" Properties: Location: ApplicationId: "arn:aws:serverlessrepo:eu-central-1:117504620086:applications/wrzasqpl-cform-cloudfront-invalidation" SemanticVersion: "1.1.7"
Alternatively, if you need full control over artifacts, you may handle the process entirely on your side - you need to upload packaged macro handler (cform-cloudfront-invalidation.zip
from GitHub Releases) to your S3 bucket. Afterwards you can just execute following template:
Resources: LogGroup: Type: "AWS::Logs::LogGroup" Properties: LogGroupName: !Sub "/aws/lambda/${CloudFrontInvalidationFunction}" RetentionInDays: 14 CloudFrontInvalidationFunction: Type: "AWS::Serverless::Function" Properties: Runtime: "provided.al2" CodeUri: # put your source bucket Bucket: "your-bucket" Key: "cform-cloudfront-invalidation.zip" Handler: "pl.wrzasq.cform.cloudfront.invalidation.config.LambdaResourcesFactory" MemorySize: 256 Description: "CloudFront cache invalidation Lambda." Timeout: 30 TracingConfig: "Active" Policies: - Version: "2012-10-17" Statement: - Action: - "cloudfront:CreateInvalidation" - "codepipeline:PutJobFailureResult" - "codepipeline:PutJobSuccessResult" Effect: "Allow" Resource: - "*"