Trigger ​
The Trigger resource lets you manage AWS Glue Triggers which are used to start jobs based on specific events or schedules.
Minimal Example ​
Create a basic Glue Trigger that starts on job creation:
ts
import AWS from "alchemy/aws/control";
const glueTrigger = await AWS.Glue.Trigger("myGlueTrigger", {
Type: "SCHEDULED",
StartOnCreation: true,
Actions: [
{
JobName: "myGlueJob",
Arguments: {
"--input": "s3://my-bucket/input",
"--output": "s3://my-bucket/output"
}
}
],
Schedule: "cron(0 12 * * ? *)" // Every day at noon UTC
});
Advanced Configuration ​
Configure a Glue Trigger with event batching conditions and a predicate:
ts
const advancedGlueTrigger = await AWS.Glue.Trigger("advancedGlueTrigger", {
Type: "EVENT",
StartOnCreation: false,
Actions: [
{
JobName: "myAdvancedGlueJob",
Arguments: {
"--input": "s3://my-bucket/advanced-input",
"--output": "s3://my-bucket/advanced-output"
}
}
],
EventBatchingCondition: {
BatchSize: 10,
BatchWindow: 60 // seconds
},
Predicate: {
Conditions: [
{
JobName: "myGlueJob",
State: "SUCCEEDED"
}
]
}
});
Scheduled Trigger Example ​
Create a Glue Trigger that runs a job daily at a specific time:
ts
const dailyGlueTrigger = await AWS.Glue.Trigger("dailyGlueTrigger", {
Type: "SCHEDULED",
StartOnCreation: true,
Actions: [
{
JobName: "myDailyJob",
Arguments: {
"--input": "s3://my-bucket/daily-input",
"--output": "s3://my-bucket/daily-output"
}
}
],
Schedule: "cron(0 15 * * ? *)" // Every day at 3 PM UTC
});
Event-Based Trigger Example ​
Set up a Glue Trigger that responds to an event from another service:
ts
const eventBasedGlueTrigger = await AWS.Glue.Trigger("eventBasedGlueTrigger", {
Type: "EVENT",
StartOnCreation: true,
Actions: [
{
JobName: "myEventJob",
Arguments: {
"--input": "s3://my-bucket/event-input",
"--output": "s3://my-bucket/event-output"
}
}
],
Predicate: {
Conditions: [
{
JobName: "myEventJob",
State: "FAILED"
}
]
}
});