1.0.3 • Published 2 years ago
@daysmart/cdk-ecs-nlb v1.0.3
Welcome to the Open Source Construct for CdkEcsNlb, which provisions application/network level resources for ecs services!
This CDK Construct Library (CdkEcsNlb
) creates an ecs service task definition, two target groups, and a complete NetworkLoadBalancedFargateService or NetworkLoadBalancedEc2Service (see documentation). This construct defines an interface (CdkEcsNlbProps
) with the following properties that can be passed in:
- vpcId: string => The string of the vpc id used for the ecs cluster and resources (ex. vpc-76594053)
- stage: string => The environment of the service to be created (ex. devtest)
- appName: string => The name of the desired ecs service (ex. api2)
- repositoryName: string => The name of an existing ecr repository (ex. api2)
- clusterName: string => The name of the existing cluster which your load balanced service will run inside (ex. dev-cluster3)
- securityGroupId: string => The string of the security group id used for the ecs cluster and resources (ex. sg-h6k7d5v3)
- taskDefinitionArn: string => The arn of an existing ecs task definition that will be used to provision the containers in the ecs service (ex. arn:aws:ecs:us-west-2:123456789012:task-definition/hello_world:8)
- healthCheckPath: string => A valid uri path that can be pinged for target group health checks on the ecs service (ex. /HealthCheck/testpath)
- (optional) tag: string => A n optional tag that can specify a particular docker image to use from the provided ecr repository (ex. dev)
- certificateArn: string => The arn of an existing acm certificate which will be used in the https load balancer listener created (ex. arn:aws:iam::674907216843:certificate/56hf4-nyi6984df-w85ntf74)
- (optional) serviceDnsRecord: string => An optional parameter for a route 53 dns record, if one already exists that you want to use for the ecs service (required if hostedZoneDomainName specified) (ex. test-ecs-service.google.com)
- (optional) hostedZoneDomainName: string => The optional name of the dns record's hosted zone name (required if serviceDnsRecord specified) (ex. google.com)
- (optional) isFargate: string => The optional input that should be set as "true" if you want the ecs service to run on the fargate platform
- (optional) targetGroupPort: string => The optional input for specifying the port that the target group in the service will use
- (optional) healthCheckHealthyThreshold: string => The optional input for specifying the number of successful health checks required before a target can be resolved as healthy
- (optional) healthCheckUnhealthyThreshold: string => The optional input for specifying the number of unsuccessful health checks before a target is resolved as unhealthy
- (optional) healthCheckInterval: string => The optional input in seconds of how often health checks should be performed
- healthCheckProtocol: "https" | "tcp" => Whether the protocol used for the health check is over https or tcp
- (optional) healthyHttpCodes: string => The optional input for specifying the range of http codes that can be returned and considered healthy for the health check
- (optional) healthCheckTimeout: string => The optional input for how long health checks should wait before timing out in seconds
- (optional) containerPort: string => The optional input for what port on the container should be hit by the load balancer
Useful commands
npm run build
compile typescript to jsnpm run watch
watch for changes and compile