Class Ec2ServiceProps
The properties for defining a service using the EC2 launch type.
Inheritance
Namespace: Amazon.CDK.AWS.ECS
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class Ec2ServiceProps : Object, IEc2ServiceProps, IBaseServiceOptions
Syntax (vb)
Public Class Ec2ServiceProps
Inherits Object
Implements IEc2ServiceProps, IBaseServiceOptions
Remarks
ExampleMetadata: infused
Examples
Cluster cluster;
TaskDefinition taskDefinition;
Vpc vpc;
var service = new Ec2Service(this, "Service", new Ec2ServiceProps { Cluster = cluster, TaskDefinition = taskDefinition });
var lb = new LoadBalancer(this, "LB", new LoadBalancerProps { Vpc = vpc });
lb.AddListener(new LoadBalancerListener { ExternalPort = 80 });
lb.AddTarget(service.LoadBalancerTarget(new LoadBalancerTargetOptions {
ContainerName = "MyContainer",
ContainerPort = 80
}));
Synopsis
Constructors
Ec2ServiceProps() |
Properties
AssignPublicIp | Specifies whether the task's elastic network interface receives a public IP address. |
CapacityProviderStrategies | A list of Capacity Provider strategies used to place a service. |
CircuitBreaker | Whether to enable the deployment circuit breaker. |
CloudMapOptions | The options for configuring an Amazon ECS service to use service discovery. |
Cluster | The name of the cluster that hosts the service. |
Daemon | Specifies whether the service will use the daemon scheduling strategy. |
DeploymentAlarms | The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time. |
DeploymentController | Specifies which deployment controller to use for the service. |
DesiredCount | The desired number of instantiations of the task definition to keep running on the service. |
EnableECSManagedTags | Specifies whether to enable Amazon ECS managed tags for the tasks within the service. |
EnableExecuteCommand | Whether to enable the ability to execute into a container. |
HealthCheckGracePeriod | The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. |
MaxHealthyPercent | The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. |
MinHealthyPercent | The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. |
PlacementConstraints | The placement constraints to use for tasks in the service. |
PlacementStrategies | The placement strategies to use for tasks in the service. |
PropagateTags | Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. |
SecurityGroups | The security groups to associate with the service. |
ServiceConnectConfiguration | Configuration for Service Connect. |
ServiceName | The name of the service. |
TaskDefinition | The task definition to use for tasks in the service. |
TaskDefinitionRevision | Revision number for the task definition or |
VolumeConfigurations | Configuration details for a volume used by the service. |
VpcSubnets | The subnets to associate with the service. |
Constructors
Ec2ServiceProps()
public Ec2ServiceProps()
Properties
AssignPublicIp
Specifies whether the task's elastic network interface receives a public IP address.
public Nullable<bool> AssignPublicIp { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
If true, each task will receive a public IP address.
This property is only used for tasks that use the awsvpc network mode.
Default: false
CapacityProviderStrategies
A list of Capacity Provider strategies used to place a service.
public ICapacityProviderStrategy[] CapacityProviderStrategies { get; set; }
Property Value
Remarks
Default: - undefined
CircuitBreaker
Whether to enable the deployment circuit breaker.
public IDeploymentCircuitBreaker CircuitBreaker { get; set; }
Property Value
Remarks
If this property is defined, circuit breaker will be implicitly enabled.
Default: - disabled
CloudMapOptions
The options for configuring an Amazon ECS service to use service discovery.
public ICloudMapOptions CloudMapOptions { get; set; }
Property Value
Remarks
Default: - AWS Cloud Map service discovery is not enabled.
Cluster
The name of the cluster that hosts the service.
public ICluster Cluster { get; set; }
Property Value
Daemon
Specifies whether the service will use the daemon scheduling strategy.
public Nullable<bool> Daemon { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
If true, the service scheduler deploys exactly one task on each container instance in your cluster.
When you are using this strategy, do not specify a desired number of tasks or any task placement strategies.
Default: false
DeploymentAlarms
The alarm(s) to monitor during deployment, and behavior to apply if at least one enters a state of alarm during the deployment or bake time.
public IDeploymentAlarmConfig DeploymentAlarms { get; set; }
Property Value
Remarks
Default: - No alarms will be monitored during deployment.
DeploymentController
Specifies which deployment controller to use for the service.
public IDeploymentController DeploymentController { get; set; }
Property Value
Remarks
For more information, see Amazon ECS Deployment Types
Default: - Rolling update (ECS)
DesiredCount
The desired number of instantiations of the task definition to keep running on the service.
public Nullable<double> DesiredCount { get; set; }
Property Value
System.Nullable<System.Double>
Remarks
Default: - When creating the service, default is 1; when updating the service, default uses the current task number.
EnableECSManagedTags
Specifies whether to enable Amazon ECS managed tags for the tasks within the service.
public Nullable<bool> EnableECSManagedTags { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
For more information, see Tagging Your Amazon ECS Resources
Default: false
EnableExecuteCommand
Whether to enable the ability to execute into a container.
public Nullable<bool> EnableExecuteCommand { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: - undefined
HealthCheckGracePeriod
The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started.
public Duration HealthCheckGracePeriod { get; set; }
Property Value
Remarks
Default: - defaults to 60 seconds if at least one load balancer is in-use and it is not already set
MaxHealthyPercent
The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
public Nullable<double> MaxHealthyPercent { get; set; }
Property Value
System.Nullable<System.Double>
Remarks
Default: - 100 if daemon, otherwise 200
MinHealthyPercent
The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.
public Nullable<double> MinHealthyPercent { get; set; }
Property Value
System.Nullable<System.Double>
Remarks
Default: - 0 if daemon, otherwise 50
PlacementConstraints
The placement constraints to use for tasks in the service.
public PlacementConstraint[] PlacementConstraints { get; set; }
Property Value
Remarks
For more information, see Amazon ECS Task Placement Constraints.
Default: - No constraints.
PlacementStrategies
The placement strategies to use for tasks in the service.
public PlacementStrategy[] PlacementStrategies { get; set; }
Property Value
Remarks
For more information, see Amazon ECS Task Placement Strategies.
Default: - No strategies.
PropagateTags
Specifies whether to propagate the tags from the task definition or the service to the tasks in the service.
public Nullable<PropagatedTagSource> PropagateTags { get; set; }
Property Value
System.Nullable<PropagatedTagSource>
Remarks
Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE
Default: PropagatedTagSource.NONE
SecurityGroups
The security groups to associate with the service.
public ISecurityGroup[] SecurityGroups { get; set; }
Property Value
Remarks
If you do not specify a security group, a new security group is created.
This property is only used for tasks that use the awsvpc network mode.
Default: - A new security group is created.
ServiceConnectConfiguration
Configuration for Service Connect.
public IServiceConnectProps ServiceConnectConfiguration { get; set; }
Property Value
Remarks
Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
ServiceName
The name of the service.
public string ServiceName { get; set; }
Property Value
System.String
Remarks
Default: - CloudFormation-generated name.
TaskDefinition
The task definition to use for tasks in the service.
public TaskDefinition TaskDefinition { get; set; }
Property Value
Remarks
[disable-awslint:ref-via-interface]
TaskDefinitionRevision
Revision number for the task definition or latest
to use the latest active task revision.
public TaskDefinitionRevision TaskDefinitionRevision { get; set; }
Property Value
Remarks
Default: - Uses the revision of the passed task definition deployed by CloudFormation
VolumeConfigurations
Configuration details for a volume used by the service.
public ServiceManagedVolume[] VolumeConfigurations { get; set; }
Property Value
Remarks
This allows you to specify details about the EBS volume that can be attched to ECS tasks.
Default: - undefined
VpcSubnets
The subnets to associate with the service.
public ISubnetSelection VpcSubnets { get; set; }
Property Value
Remarks
This property is only used for tasks that use the awsvpc network mode.
Default: - Public subnets if assignPublicIp
is set, otherwise the first available one of Private, Isolated, Public, in that order.