Skip to content
GitHubXDiscordRSS

Function

Learn how to create, update, and manage AWS CloudFront Functions using Alchemy Cloud Control.

The Function resource allows you to create, update, and manage AWS CloudFront Functions for lightweight serverless code execution at the edge.

Create a basic CloudFront Function with required properties and one optional property.

import AWS from "alchemy/aws/control";
const myFunction = await AWS.CloudFront.Function("myFunction", {
Name: "MyEdgeFunction",
FunctionCode: "function handler(event) { return event; }",
FunctionConfig: {
Comment: "A simple edge function",
Runtime: "cloudfront-js-1.0"
},
AutoPublish: true // Automatically publish the function upon creation
});

Configure a CloudFront Function with metadata and additional settings.

const advancedFunction = await AWS.CloudFront.Function("advancedFunction", {
Name: "AdvancedEdgeFunction",
FunctionCode: "function handler(event) { return event; }",
FunctionConfig: {
Comment: "An advanced edge function with custom settings",
Runtime: "cloudfront-js-1.0",
MemorySize: 512 // Memory size in MB for the function
},
FunctionMetadata: {
CreatedBy: "user@example.com",
LastUpdatedBy: "user@example.com"
},
AutoPublish: true // Automatically publish the function upon creation
});

Create a CloudFront Function that adopts an existing resource if it already exists.

const adoptFunction = await AWS.CloudFront.Function("adoptFunction", {
Name: "AdoptedEdgeFunction",
FunctionCode: "function handler(event) { return event; }",
FunctionConfig: {
Comment: "This function adopts an existing resource",
Runtime: "cloudfront-js-1.0"
},
adopt: true // Adopt existing resource instead of failing
});

Update an existing CloudFront Function with new code and configuration.

const updatedFunction = await AWS.CloudFront.Function("updatedFunction", {
Name: "UpdatedEdgeFunction",
FunctionCode: "function handler(event) { /* new logic */ return event; }",
FunctionConfig: {
Comment: "Updated edge function logic",
Runtime: "cloudfront-js-1.0"
},
AutoPublish: true // Publish the updated function
});