Skip to content
GitHubXDiscordRSS

SubscriptionFilter

Learn how to create, update, and manage AWS Logs SubscriptionFilters using Alchemy Cloud Control.

The SubscriptionFilter resource allows you to manage AWS Logs SubscriptionFilters for streaming log data to various destinations such as Amazon Kinesis or Lambda functions.

Create a basic subscription filter to stream logs from a log group to a specified destination.

import AWS from "alchemy/aws/control";
const minimalSubscriptionFilter = await AWS.Logs.SubscriptionFilter("basicFilter", {
FilterPattern: "[host, ident, auth, timestamp, request]",
LogGroupName: "my-log-group",
DestinationArn: "arn:aws:lambda:us-west-2:123456789012:function:myLambdaFunction",
ApplyOnTransformedLogs: true
});

Configure a subscription filter with advanced options like custom filter name and distribution method.

const advancedSubscriptionFilter = await AWS.Logs.SubscriptionFilter("advancedFilter", {
FilterPattern: "{ $.level = \"ERROR\" }",
LogGroupName: "my-log-group",
DestinationArn: "arn:aws:kinesis:us-west-2:123456789012:stream/myKinesisStream",
FilterName: "ErrorFilter",
Distribution: "ByLogStream"
});

Set up a subscription filter to capture logs matching a specific pattern for a Lambda function.

const lambdaFilter = await AWS.Logs.SubscriptionFilter("lambdaErrorFilter", {
FilterPattern: "{ $.error = true }",
LogGroupName: "application-log-group",
DestinationArn: "arn:aws:lambda:us-west-2:123456789012:function:errorHandler",
FilterName: "LambdaErrorHandler",
ApplyOnTransformedLogs: false
});

Create a subscription filter that streams log data to a Kinesis stream for real-time processing.

const kinesisFilter = await AWS.Logs.SubscriptionFilter("kinesisLogFilter", {
FilterPattern: "[ip, timestamp, request]",
LogGroupName: "web-application-logs",
DestinationArn: "arn:aws:kinesis:us-west-2:123456789012:stream/webAppLogsStream",
FilterName: "WebLogsToKinesis",
Distribution: "Random"
});