Skip to content

QueryDefinition ​

The QueryDefinition resource lets you manage AWS Logs QueryDefinitions for defining queries on log data.

Minimal Example ​

Create a basic query definition with required properties and a common optional property:

ts
import AWS from "alchemy/aws/control";

const basicQueryDefinition = await AWS.Logs.QueryDefinition("basicQuery", {
  Name: "ErrorLogQuery",
  QueryString: "fields @timestamp, @message | sort @timestamp desc | limit 20",
  LogGroupNames: ["application-logs"]
});

Advanced Configuration ​

Define a query with additional configuration such as specifying the query language:

ts
const advancedQueryDefinition = await AWS.Logs.QueryDefinition("advancedQuery", {
  Name: "DebugLogQuery",
  QueryString: "fields @timestamp, @message | filter @message like /DEBUG/ | sort @timestamp desc | limit 20",
  LogGroupNames: ["application-logs", "system-logs"],
  QueryLanguage: "SQL"
});

Query with Adoption ​

Create a query definition that adopts an existing resource if it already exists:

ts
const adoptedQueryDefinition = await AWS.Logs.QueryDefinition("adoptedQuery", {
  Name: "AdoptedErrorLogQuery",
  QueryString: "fields @timestamp, @message | filter @message like /ERROR/",
  LogGroupNames: ["application-logs"],
  adopt: true
});