Skip to content
GitHubXDiscordRSS

Transformer

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

The Transformer resource allows you to manage AWS Logs Transformers and their configuration for processing log data efficiently.

This example demonstrates how to create a basic logs transformer with required properties and one optional property.

import AWS from "alchemy/aws/control";
const logsTransformer = await AWS.Logs.Transformer("basic-logs-transformer", {
TransformerConfig: [
{
type: "json", // Example processor type
parameters: {
// Any parameters required for the processor type
}
}
],
LogGroupIdentifier: "/aws/lambda/my-function",
adopt: true // Optional: Adopt existing resource if it exists
});

In this example, we configure a logs transformer with multiple processors for advanced log processing capabilities.

const advancedLogsTransformer = await AWS.Logs.Transformer("advanced-logs-transformer", {
TransformerConfig: [
{
type: "json",
parameters: {
// Parameters for JSON processor
}
},
{
type: "filter",
parameters: {
filterPattern: "{ $.statusCode = 200 }" // Filter to only include successful requests
}
}
],
LogGroupIdentifier: "/aws/lambda/my-advanced-function",
adopt: false // Optional: Do not adopt existing resource
});

This example demonstrates how to set up a transformer that processes logs in batches for improved performance.

const batchLogsTransformer = await AWS.Logs.Transformer("batch-logs-transformer", {
TransformerConfig: [
{
type: "batch",
parameters: {
batchSize: 100, // Number of log entries to process per batch
timeout: 5 // Timeout in seconds for processing a batch
}
}
],
LogGroupIdentifier: "/aws/lambda/my-batch-function"
});

Here’s how to integrate a logs transformer with an S3 bucket for storing processed logs.

const s3LogsTransformer = await AWS.Logs.Transformer("s3-logs-transformer", {
TransformerConfig: [
{
type: "s3",
parameters: {
bucketName: "my-logs-bucket",
prefix: "processed-logs/"
}
}
],
LogGroupIdentifier: "/aws/lambda/my-s3-function",
adopt: false
});