Skip to content

Function ​

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

Minimal Example ​

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

ts
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
});

Advanced Configuration ​

Configure a CloudFront Function with metadata and additional settings.

ts
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
});

Function Adoption ​

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

ts
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
});

Updating a Function ​

Update an existing CloudFront Function with new code and configuration.

ts
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
});