Skip to content
GitHubXDiscord

MaintenanceWindowTask

The MaintenanceWindowTask resource lets you create and manage tasks that can be executed during specified maintenance windows in AWS Systems Manager. For more detailed information, refer to the AWS SSM MaintenanceWindowTasks documentation.

Create a basic MaintenanceWindowTask with required properties and one optional property.

import AWS from "alchemy/aws/control";
const maintenanceTask = await AWS.SSM.MaintenanceWindowTask("basicMaintenanceTask", {
WindowId: "mw-1234567890abcdef0",
TaskArn: "arn:aws:ssm:us-east-1:123456789012:task:MyTask",
TaskType: "RUN_COMMAND",
Priority: 1,
MaxConcurrency: "1",
MaxErrors: "1"
});

Configure a MaintenanceWindowTask with additional properties for logging and task parameters.

const advancedMaintenanceTask = await AWS.SSM.MaintenanceWindowTask("advancedMaintenanceTask", {
WindowId: "mw-0987654321fedcba0",
TaskArn: "arn:aws:ssm:us-east-1:123456789012:task:AnotherTask",
TaskType: "RUN_COMMAND",
Priority: 2,
Targets: [{
Key: "InstanceIds",
Values: ["i-1234567890abcdef0"]
}],
TaskInvocationParameters: {
RunCommand: {
DocumentName: "AWS-RunShellScript",
Parameters: {
commands: ["echo Hello World"]
}
}
},
LoggingInfo: {
S3BucketName: "my-logging-bucket",
S3BucketOwner: "123456789012",
S3KeyPrefix: "maintenance-logs"
}
});

Demonstrate how to specify a Service Role ARN for the task execution.

const taskWithServiceRole = await AWS.SSM.MaintenanceWindowTask("taskWithServiceRole", {
WindowId: "mw-1122334455667788",
TaskArn: "arn:aws:ssm:us-east-1:123456789012:task:ServiceRoleTask",
TaskType: "RUN_COMMAND",
Priority: 3,
ServiceRoleArn: "arn:aws:iam::123456789012:role/MyMaintenanceWindowRole"
});

Show how to specify cutoff behavior for task execution.

const taskWithCutoffBehavior = await AWS.SSM.MaintenanceWindowTask("taskWithCutoffBehavior", {
WindowId: "mw-2233445566778899",
TaskArn: "arn:aws:ssm:us-east-1:123456789012:task:CutoffBehaviorTask",
TaskType: "RUN_COMMAND",
Priority: 4,
CutoffBehavior: "CANCEL_TASK"
});