Skip to content
v2.277.0

ScheduledEc2TaskProps Struct ​

The properties for the ScheduledEc2Task task.

Example ​

ts
// Instantiate an Amazon EC2 Task to run at a scheduled interval
declare const cluster: ecs.Cluster;
const ecsScheduledTask = new ecsPatterns.ScheduledEc2Task(this, 'ScheduledTask', {
  cluster,
  scheduledEc2TaskImageOptions: {
    image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'),
    memoryLimitMiB: 256,
    environment: { name: 'TRIGGER', value: 'CloudWatch Events' },
  },
  schedule: appscaling.Schedule.expression('rate(1 minute)'),
  enabled: true,
  ruleName: 'sample-scheduled-task-rule',
});
python
# Instantiate an Amazon EC2 Task to run at a scheduled interval
# cluster: ecs.Cluster

ecs_scheduled_task = ecs_patterns.ScheduledEc2Task(self, "ScheduledTask",
    cluster=cluster,
    scheduled_ec2_task_image_options=ecsPatterns.ScheduledEc2TaskImageOptions(
        image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
        memory_limit_mi_b=256,
        environment={"name": "TRIGGER", "value": "CloudWatch Events"}
    ),
    schedule=appscaling.Schedule.expression("rate(1 minute)"),
    enabled=True,
    rule_name="sample-scheduled-task-rule"
)
java
// Instantiate an Amazon EC2 Task to run at a scheduled interval
Cluster cluster;

ScheduledEc2Task ecsScheduledTask = ScheduledEc2Task.Builder.create(this, "ScheduledTask")
        .cluster(cluster)
        .scheduledEc2TaskImageOptions(ScheduledEc2TaskImageOptions.builder()
                .image(ContainerImage.fromRegistry("amazon/amazon-ecs-sample"))
                .memoryLimitMiB(256)
                .environment(Map.of("name", "TRIGGER", "value", "CloudWatch Events"))
                .build())
        .schedule(Schedule.expression("rate(1 minute)"))
        .enabled(true)
        .ruleName("sample-scheduled-task-rule")
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
// Instantiate an Amazon EC2 Task to run at a scheduled interval
Cluster cluster;

var ecsScheduledTask = new ScheduledEc2Task(this, "ScheduledTask", new ScheduledEc2TaskProps {
    Cluster = cluster,
    ScheduledEc2TaskImageOptions = new ScheduledEc2TaskImageOptions {
        Image = ContainerImage.FromRegistry("amazon/amazon-ecs-sample"),
        MemoryLimitMiB = 256,
        Environment = new Dictionary<string, string> { { "name", "TRIGGER" }, { "value", "CloudWatch Events" } }
    },
    Schedule = Schedule.Expression("rate(1 minute)"),
    Enabled = true,
    RuleName = "sample-scheduled-task-rule"
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// Instantiate an Amazon EC2 Task to run at a scheduled interval
var cluster Cluster

ecsScheduledTask := ecsPatterns.NewScheduledEc2Task(this, jsii.String("ScheduledTask"), &ScheduledEc2TaskProps{
	Cluster: Cluster,
	ScheduledEc2TaskImageOptions: &ScheduledEc2TaskImageOptions{
		Image: ecs.ContainerImage_FromRegistry(jsii.String("amazon/amazon-ecs-sample")),
		MemoryLimitMiB: jsii.Number(256),
		Environment: map[string]*string{
			"name": jsii.String("TRIGGER"),
			"value": jsii.String("CloudWatch Events"),
		},
	},
	Schedule: appscaling.Schedule_Expression(jsii.String("rate(1 minute)")),
	Enabled: jsii.Boolean(true),
	RuleName: jsii.String("sample-scheduled-task-rule"),
})

Properties ​

clusteroptionalIClusterclusteroptionalIClusterclusteroptionalIClusterClusteroptionalIClusterClusteroptionalICluster#
The name of the cluster that hosts the service.

Default: create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.

If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.

desiredTaskCountoptionalnumberdesired_task_countoptionalint | floatdesiredTaskCountoptionalNumberDesiredTaskCountoptionaldoubleDesiredTaskCountoptional*float64= 1#
The desired number of instantiations of the task definition to keep running on the service.
enabledoptionalbooleanenabledoptionalboolenabledoptionalBooleanEnabledoptionalboolEnabledoptional*bool= true#
Indicates whether the rule is enabled.
propagateTagsoptionalPropagatedTagSourcepropagate_tagsoptionalPropagatedTagSourcepropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSourcePropagateTagsoptionalPropagatedTagSource#
Specifies whether to propagate the tags from the task definition to the task.

Default: Tags will not be propagated

If no value is specified, the tags are not propagated.

ruleNameoptionalstringrule_nameoptionalstrruleNameoptionalStringRuleNameoptionalstringRuleNameoptional*string#
A name for the rule.

Default: AWS CloudFormation generates a unique physical ID and uses that ID for the rule name. For more information, see Name Type.

scheduleSchedulescheduleSchedulescheduleScheduleScheduleScheduleScheduleSchedulerequired#
The schedule or rate (frequency) that determines when CloudWatch Events runs the rule.

For more information, see Schedule Expression Syntax for Rules in the Amazon CloudWatch User Guide.

scheduledEc2TaskDefinitionOptionsoptionalScheduledEc2TaskDefinitionOptionsscheduled_ec2_task_definition_optionsoptionalScheduledEc2TaskDefinitionOptionsscheduledEc2TaskDefinitionOptionsoptionalScheduledEc2TaskDefinitionOptionsScheduledEc2TaskDefinitionOptionsoptionalScheduledEc2TaskDefinitionOptionsScheduledEc2TaskDefinitionOptionsoptionalScheduledEc2TaskDefinitionOptions= none#
The properties to define if using an existing TaskDefinition in this construct.

ScheduledEc2TaskDefinitionOptions or ScheduledEc2TaskImageOptions must be defined, but not both.

scheduledEc2TaskImageOptionsoptionalScheduledEc2TaskImageOptionsscheduled_ec2_task_image_optionsoptionalScheduledEc2TaskImageOptionsscheduledEc2TaskImageOptionsoptionalScheduledEc2TaskImageOptionsScheduledEc2TaskImageOptionsoptionalScheduledEc2TaskImageOptionsScheduledEc2TaskImageOptionsoptionalScheduledEc2TaskImageOptions= none#
The properties to define if the construct is to create a TaskDefinition.

ScheduledEc2TaskDefinitionOptions or ScheduledEc2TaskImageOptions must be defined, but not both.

securityGroupsoptionalISecurityGroup[]security_groupsoptionaltyping.List[ISecurityGroup]securityGroupsoptionalList<ISecurityGroup>SecurityGroupsoptionalISecurityGroup[]SecurityGroupsoptional*[]ISecurityGroup#
Existing security groups to use for your service.

Default: a new security group will be created.

subnetSelectionoptionalSubnetSelectionsubnet_selectionoptionalSubnetSelectionsubnetSelectionoptionalSubnetSelectionSubnetSelectionoptionalSubnetSelectionSubnetSelectionoptionalSubnetSelection#
In what subnets to place the task's ENIs.

Default: Private subnets

(Only applicable in case the TaskDefinition is configured for AwsVpc networking)

tagsoptionalTag[]tagsoptionaltyping.List[Tag]tagsoptionalList<Tag>TagsoptionalTag[]Tagsoptional*[]Tag#
The metadata that you apply to the task to help you categorize and organize them.

Default: No tags are applied to the task

Each tag consists of a key and an optional value, both of which you define.

vpcoptionalIVpcvpcoptionalIVpcvpcoptionalIVpcVpcoptionalIVpcVpcoptionalIVpc#
The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.

Default: uses the VPC defined in the cluster or creates a new VPC.

If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.