Transformer ​
The Transformer resource allows you to manage AWS Logs Transformers and their configuration for processing log data efficiently.
Minimal Example ​
This example demonstrates how to create a basic logs transformer with required properties and one optional property.
ts
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
});
Advanced Configuration ​
In this example, we configure a logs transformer with multiple processors for advanced log processing capabilities.
ts
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
});
Batch Processing Configuration ​
This example demonstrates how to set up a transformer that processes logs in batches for improved performance.
ts
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"
});
Integrating with Other AWS Services ​
Here’s how to integrate a logs transformer with an S3 bucket for storing processed logs.
ts
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
});