AWS::CloudFront::Function - AWS CloudFormation

AWS::CloudFront::Function

Creates a CloudFront function.

To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function, and the function’s stage.

By default, when you create a function, it’s in the DEVELOPMENT stage. In this stage, you can test the function in the CloudFront console (or with TestFunction in the CloudFront API).

When you’re ready to use your function with a CloudFront distribution, publish the function to the LIVE stage. You can do this in the CloudFront console, with PublishFunction in the CloudFront API, or by updating the AWS::CloudFront::Function resource with the AutoPublish property set to true. When the function is published to the LIVE stage, you can attach it to a distribution’s cache behavior, using the function’s ARN.

To automatically publish the function to the LIVE stage when it’s created, set the AutoPublish property to true.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::CloudFront::Function", "Properties" : { "AutoPublish" : Boolean, "FunctionCode" : String, "FunctionConfig" : FunctionConfig, "Name" : String } }

YAML

Type: AWS::CloudFront::Function Properties: AutoPublish: Boolean FunctionCode: String FunctionConfig: FunctionConfig Name: String

Properties

AutoPublish

A flag that determines whether to automatically publish the function to the LIVE stage when it’s created. To automatically publish to the LIVE stage, set this property to true.

Required: No

Type: Boolean

Update requires: No interruption

FunctionCode

The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide.

Required: No

Type: String

Update requires: No interruption

FunctionConfig

Contains configuration information about a CloudFront function.

Required: No

Type: FunctionConfig

Update requires: No interruption

Name

A name to identify the function.

Required: Yes

Type: String

Minimum: 1

Maximum: 64

Pattern: ^[a-zA-Z0-9-_]{1,64}$

Update requires: No interruption

Return values

Fn::GetAtt

FunctionARN

The ARN of the function. For example:

arn:aws:cloudfront::123456789012:function/ExampleFunction.

To get the function ARN, use the following syntax:

!GetAtt Function_Logical_ID.FunctionMetadata.FunctionARN

FunctionMetadata.FunctionARN

Not currently supported by AWS CloudFormation.