1
1
import ecs = require( '@aws-cdk/aws-ecs' ) ;
2
+ import iam = require( '@aws-cdk/aws-iam' ) ;
2
3
import cdk = require( '@aws-cdk/cdk' ) ;
3
4
import { LoadBalancedServiceBase , LoadBalancedServiceBaseProps } from '../base/load-balanced-service-base' ;
4
5
@@ -42,6 +43,34 @@ export interface LoadBalancedFargateServiceProps extends LoadBalancedServiceBase
42
43
* @default 512
43
44
*/
44
45
readonly memoryLimitMiB ?: number ;
46
+
47
+ /**
48
+ * Override for the Fargate Task Definition execution role
49
+ *
50
+ * @default - No value
51
+ */
52
+ readonly executionRole ?: iam . IRole ;
53
+
54
+ /**
55
+ * Override for the Fargate Task Definition task role
56
+ *
57
+ * @default - No value
58
+ */
59
+ readonly taskRole ?: iam . IRole ;
60
+
61
+ /**
62
+ * Override value for the container name
63
+ *
64
+ * @default - No value
65
+ */
66
+ readonly containerName ?: string ;
67
+
68
+ /**
69
+ * Override value for the service name
70
+ *
71
+ * @default - No value
72
+ */
73
+ readonly serviceName ?: string ;
45
74
}
46
75
47
76
/**
@@ -59,10 +88,14 @@ export class LoadBalancedFargateService extends LoadBalancedServiceBase {
59
88
60
89
const taskDefinition = new ecs . FargateTaskDefinition ( this , 'TaskDef' , {
61
90
memoryLimitMiB : props . memoryLimitMiB ,
62
- cpu : props . cpu
91
+ cpu : props . cpu ,
92
+ executionRole : props . executionRole !== undefined ? props . executionRole : undefined ,
93
+ taskRole : props . taskRole !== undefined ? props . taskRole : undefined
63
94
} ) ;
64
95
65
- const container = taskDefinition . addContainer ( 'web' , {
96
+ const containerName = props . containerName !== undefined ? props . containerName : 'web' ;
97
+
98
+ const container = taskDefinition . addContainer ( containerName , {
66
99
image : props . image ,
67
100
logging : this . logDriver ,
68
101
environment : props . environment
@@ -71,13 +104,13 @@ export class LoadBalancedFargateService extends LoadBalancedServiceBase {
71
104
container . addPortMappings ( {
72
105
containerPort : props . containerPort || 80 ,
73
106
} ) ;
74
-
75
107
const assignPublicIp = props . publicTasks !== undefined ? props . publicTasks : false ;
76
108
const service = new ecs . FargateService ( this , "Service" , {
77
109
cluster : props . cluster ,
78
110
desiredCount : props . desiredCount || 1 ,
79
111
taskDefinition,
80
- assignPublicIp
112
+ assignPublicIp,
113
+ serviceName : props . serviceName || undefined
81
114
} ) ;
82
115
this . service = service ;
83
116
0 commit comments