# ScheduledEc2TaskProps

The properties for the ScheduledEc2Task task.

Extends: ScheduledEc2TaskProps
Extends: ScheduledTaskBaseProps
Used as props by: ScheduledEc2Task

- Source: [`aws-ecs-patterns/lib/ecs/scheduled-ecs-task.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.ts#L12)

## 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',
});
```

## Properties

- `cluster`: [ICluster](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.ICluster.html) — 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.

- `desiredTaskCount`: number = 1 — The desired number of instantiations of the task definition to keep running on the service.

- `enabled`: boolean = true — Indicates whether the rule is enabled.

- `propagateTags`: [PropagatedTagSource](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.PropagatedTagSource.html) — 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.

- `ruleName`: 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).

- `schedule`: [Schedule](/cdk/api/v2/docs/aws-cdk-lib.aws_applicationautoscaling.Schedule.html) (required) — The schedule or rate (frequency) that determines when CloudWatch Events runs the rule.

  For more information, see
  [Schedule Expression Syntax for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)
  in the Amazon CloudWatch User Guide.

- `scheduledEc2TaskDefinitionOptions`: [ScheduledEc2TaskDefinitionOptions](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.ScheduledEc2TaskDefinitionOptions.html) = none — The properties to define if using an existing TaskDefinition in this construct.

  ScheduledEc2TaskDefinitionOptions or ScheduledEc2TaskImageOptions must be defined, but not both.

- `scheduledEc2TaskImageOptions`: [ScheduledEc2TaskImageOptions](/cdk/api/v2/docs/aws-cdk-lib.aws_ecs_patterns.ScheduledEc2TaskImageOptions.html) = none — The properties to define if the construct is to create a TaskDefinition.

  ScheduledEc2TaskDefinitionOptions or ScheduledEc2TaskImageOptions must be defined, but not both.

- `securityGroups`: [ISecurityGroup](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.ISecurityGroup.html)[] — Existing security groups to use for your service.

  **Default:** a new security group will be created.

- `subnetSelection`: [SubnetSelection](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.SubnetSelection.html) — In what subnets to place the task's ENIs.

  **Default:** Private subnets

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

- `tags`: [Tag](/cdk/api/v2/docs/aws-cdk-lib.aws_events_targets.Tag.html)[] — 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.

- `vpc`: [IVpc](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.IVpc.html) — 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.
