Schedule
Learn how to create, update, and manage AWS Scheduler Schedules using Alchemy Cloud Control.
The Schedule resource lets you manage AWS Scheduler Schedules for automating tasks and events based on a defined schedule.
Minimal Example
Section titled “Minimal Example”Create a basic schedule that triggers a Lambda function at a specified interval.
import AWS from "alchemy/aws/control";
const lambdaSchedule = await AWS.Scheduler.Schedule("lambdaSchedule", { scheduleExpression: "rate(5 minutes)", target: { arn: "arn:aws:lambda:us-west-2:123456789012:function:myLambdaFunction", roleArn: "arn:aws:iam::123456789012:role/service-role/myLambdaRole" }, flexibleTimeWindow: { mode: "OFF" }, description: "Schedule to trigger my Lambda function every 5 minutes."});
Advanced Configuration
Section titled “Advanced Configuration”Configure a schedule with a specific start and end date, as well as a custom time zone.
const advancedSchedule = await AWS.Scheduler.Schedule("advancedSchedule", { scheduleExpression: "cron(0 12 * * ? *)", // Every day at 12 PM UTC target: { arn: "arn:aws:sns:us-east-1:123456789012:mySnsTopic", roleArn: "arn:aws:iam::123456789012:role/service-role/mySnsRole" }, startDate: "2023-11-01T00:00:00Z", endDate: "2023-12-01T00:00:00Z", scheduleExpressionTimezone: "UTC", flexibleTimeWindow: { mode: "OFF" }, description: "Daily notification to SNS at 12 PM UTC from Nov 1 to Dec 1."});
Using a KMS Key for Encryption
Section titled “Using a KMS Key for Encryption”Create a schedule that uses a KMS key for encrypting the target’s data.
const encryptedSchedule = await AWS.Scheduler.Schedule("encryptedSchedule", { scheduleExpression: "rate(1 hour)", target: { arn: "arn:aws:lambda:us-east-1:123456789012:function:mySecureLambdaFunction", roleArn: "arn:aws:iam::123456789012:role/service-role/mySecureLambdaRole" }, kmsKeyArn: "arn:aws:kms:us-east-1:123456789012:key/abcd1234-efgh-5678-ijkl-91011mnopqr", flexibleTimeWindow: { mode: "OFF" }, description: "Securely triggers my Lambda function every hour using KMS."});
Adoption of Existing Resources
Section titled “Adoption of Existing Resources”Create a schedule while adopting an existing resource if it already exists.
const adoptedSchedule = await AWS.Scheduler.Schedule("adoptedSchedule", { scheduleExpression: "cron(0 18 * * ? *)", // Every day at 6 PM UTC target: { arn: "arn:aws:ecs:us-west-2:123456789012:service/myEcsService", roleArn: "arn:aws:iam::123456789012:role/service-role/myEcsRole" }, adopt: true, // Adopt existing resource flexibleTimeWindow: { mode: "OFF" }, description: "Adopt existing schedule to trigger ECS service daily at 6 PM UTC."});