Class NetworkLoadBalancedServiceBaseProps
The properties for the base NetworkLoadBalancedEc2Service or NetworkLoadBalancedFargateService service.
Inheritance
Implements
Namespace: Amazon.CDK.AWS.ECS.Patterns
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class NetworkLoadBalancedServiceBaseProps : Object, INetworkLoadBalancedServiceBaseProps
Syntax (vb)
Public Class NetworkLoadBalancedServiceBaseProps
Inherits Object
Implements INetworkLoadBalancedServiceBaseProps
Remarks
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
using Amazon.CDK.AWS.EC2;
using Amazon.CDK.AWS.ECS;
using Amazon.CDK.AWS.ECS.Patterns;
using Amazon.CDK.AWS.ElasticLoadBalancingV2;
using Amazon.CDK.AWS.IAM;
using Amazon.CDK.AWS.Route53;
using Amazon.CDK.AWS.ServiceDiscovery;
Cluster cluster;
ContainerDefinition containerDefinition;
ContainerImage containerImage;
HostedZone hostedZone;
LogDriver logDriver;
INamespace namespace;
NetworkLoadBalancer networkLoadBalancer;
Role role;
Secret secret;
Vpc vpc;
var networkLoadBalancedServiceBaseProps = new NetworkLoadBalancedServiceBaseProps {
CapacityProviderStrategies = new [] { new CapacityProviderStrategy {
CapacityProvider = "capacityProvider",
// the properties below are optional
Base = 123,
Weight = 123
} },
CircuitBreaker = new DeploymentCircuitBreaker {
Enable = false,
Rollback = false
},
CloudMapOptions = new CloudMapOptions {
CloudMapNamespace = namespace,
Container = containerDefinition,
ContainerPort = 123,
DnsRecordType = DnsRecordType.A,
DnsTtl = Duration.Minutes(30),
FailureThreshold = 123,
Name = "name"
},
Cluster = cluster,
DeploymentController = new DeploymentController {
Type = DeploymentControllerType.ECS
},
DesiredCount = 123,
DomainName = "domainName",
DomainZone = hostedZone,
EnableECSManagedTags = false,
EnableExecuteCommand = false,
HealthCheckGracePeriod = Duration.Minutes(30),
ListenerPort = 123,
LoadBalancer = networkLoadBalancer,
MaxHealthyPercent = 123,
MinHealthyPercent = 123,
PropagateTags = PropagatedTagSource.SERVICE,
PublicLoadBalancer = false,
RecordType = NetworkLoadBalancedServiceRecordType.ALIAS,
ServiceName = "serviceName",
TaskImageOptions = new NetworkLoadBalancedTaskImageOptions {
Image = containerImage,
// the properties below are optional
ContainerName = "containerName",
ContainerPort = 123,
DockerLabels = new Dictionary<string, string> {
{ "dockerLabelsKey", "dockerLabels" }
},
EnableLogging = false,
Environment = new Dictionary<string, string> {
{ "environmentKey", "environment" }
},
ExecutionRole = role,
Family = "family",
LogDriver = logDriver,
Secrets = new Dictionary<string, Secret> {
{ "secretsKey", secret }
},
TaskRole = role
},
Vpc = vpc
};
Synopsis
Constructors
NetworkLoadBalancedServiceBaseProps() |
Properties
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. |
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. |
DomainName | The domain name for the service, e.g. "api.example.com.". |
DomainZone | The Route53 hosted zone for the domain, e.g. "example.com.". |
EnableECSManagedTags | Specifies whether to enable Amazon ECS managed tags for the tasks within the service. |
EnableExecuteCommand | Whether ECS Exec should be enabled. |
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. |
ListenerPort | Listener port of the network load balancer that will serve traffic to the service. |
LoadBalancer | The network load balancer that will serve traffic to the service. |
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. |
PropagateTags | Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. |
PublicLoadBalancer | Determines whether the Load Balancer will be internet-facing. |
RecordType | Specifies whether the Route53 record should be a CNAME, an A record using the Alias feature or no record at all. |
ServiceName | The name of the service. |
TaskImageOptions | The properties required to create a new task definition. |
Vpc | The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed. |
Constructors
NetworkLoadBalancedServiceBaseProps()
public NetworkLoadBalancedServiceBaseProps()
Properties
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
Remarks
If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc.
Default: - create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.
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
The minimum value is 1
Default: - The default is 1 for all new services and uses the existing service's desired count when updating an existing service.
DomainName
The domain name for the service, e.g. "api.example.com.".
public string DomainName { get; set; }
Property Value
System.String
Remarks
Default: - No domain name.
DomainZone
The Route53 hosted zone for the domain, e.g. "example.com.".
public IHostedZone DomainZone { get; set; }
Property Value
Remarks
Default: - No Route53 hosted domain zone.
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 ECS Exec should be enabled.
public Nullable<bool> EnableExecuteCommand { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: - false
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
ListenerPort
Listener port of the network load balancer that will serve traffic to the service.
public Nullable<double> ListenerPort { get; set; }
Property Value
System.Nullable<System.Double>
Remarks
Default: 80
LoadBalancer
The network load balancer that will serve traffic to the service.
public INetworkLoadBalancer LoadBalancer { get; set; }
Property Value
Remarks
If the load balancer has been imported, the vpc attribute must be specified in the call to fromNetworkLoadBalancerAttributes().
[disable-awslint:ref-via-interface]
Default: - a new load balancer will be created.
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
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
Tags can only be propagated to the tasks within the service during service creation.
Default: - none
PublicLoadBalancer
Determines whether the Load Balancer will be internet-facing.
public Nullable<bool> PublicLoadBalancer { get; set; }
Property Value
System.Nullable<System.Boolean>
Remarks
Default: true
RecordType
Specifies whether the Route53 record should be a CNAME, an A record using the Alias feature or no record at all.
public Nullable<NetworkLoadBalancedServiceRecordType> RecordType { get; set; }
Property Value
System.Nullable<NetworkLoadBalancedServiceRecordType>
Remarks
This is useful if you need to work with DNS systems that do not support alias records.
Default: NetworkLoadBalancedServiceRecordType.ALIAS
ServiceName
The name of the service.
public string ServiceName { get; set; }
Property Value
System.String
Remarks
Default: - CloudFormation-generated name.
TaskImageOptions
The properties required to create a new task definition.
public INetworkLoadBalancedTaskImageOptions TaskImageOptions { get; set; }
Property Value
INetworkLoadBalancedTaskImageOptions
Remarks
One of taskImageOptions or taskDefinition must be specified.
Default: - none
Vpc
The VPC where the container instances will be launched or the elastic network interfaces (ENIs) will be deployed.
public IVpc Vpc { get; set; }
Property Value
Remarks
If a vpc is specified, the cluster construct should be omitted. Alternatively, you can omit both vpc and cluster.
Default: - uses the VPC defined in the cluster or creates a new VPC.