@@ -43,7 +43,7 @@ export interface LambdaDeploymentGroupProps {
43
43
*
44
44
* @default one will be created for you
45
45
*/
46
- application ?: LambdaApplication ;
46
+ application ?: ILambdaApplication ;
47
47
48
48
/**
49
49
* The physical, human-readable name of the CodeDeploy Deployment Group.
@@ -76,7 +76,7 @@ export interface LambdaDeploymentGroupProps {
76
76
*
77
77
* @default a new Role will be created.
78
78
*/
79
- role ?: iam . Role ;
79
+ role ?: iam . IRole ;
80
80
81
81
/**
82
82
* Lambda Alias to shift traffic. Updating the version
@@ -124,7 +124,7 @@ export class LambdaDeploymentGroup extends cdk.Construct implements ILambdaDeplo
124
124
public readonly application : ILambdaApplication ;
125
125
public readonly deploymentGroupName : string ;
126
126
public readonly deploymentGroupArn : string ;
127
- public readonly role : iam . Role ;
127
+ public readonly role : iam . IRole ;
128
128
129
129
private readonly alarms : cloudwatch . Alarm [ ] ;
130
130
private preHook ?: lambda . IFunction ;
@@ -136,24 +136,15 @@ export class LambdaDeploymentGroup extends cdk.Construct implements ILambdaDeplo
136
136
this . application = props . application || new LambdaApplication ( this , 'Application' ) ;
137
137
this . alarms = props . alarms || [ ] ;
138
138
139
- let serviceRole : iam . Role | undefined = props . role ;
140
- if ( serviceRole ) {
141
- if ( serviceRole . assumeRolePolicy ) {
142
- serviceRole . assumeRolePolicy . addStatement ( new iam . PolicyStatement ( )
143
- . addAction ( 'sts:AssumeRole' )
144
- . addServicePrincipal ( 'codedeploy.amazonaws.com' ) ) ;
145
- }
146
- } else {
147
- serviceRole = new iam . Role ( this , 'ServiceRole' , {
148
- assumedBy : new iam . ServicePrincipal ( 'codedeploy.amazonaws.com' )
149
- } ) ;
150
- }
151
- serviceRole . attachManagedPolicy ( 'arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda' ) ;
152
- this . role = serviceRole ;
139
+ this . role = props . role || new iam . Role ( this , 'ServiceRole' , {
140
+ assumedBy : new iam . ServicePrincipal ( 'codedeploy.amazonaws.com' )
141
+ } ) ;
142
+
143
+ this . role . attachManagedPolicy ( 'arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda' ) ;
153
144
154
145
const resource = new CfnDeploymentGroup ( this , 'Resource' , {
155
146
applicationName : this . application . applicationName ,
156
- serviceRoleArn : serviceRole . roleArn ,
147
+ serviceRoleArn : this . role . roleArn ,
157
148
deploymentGroupName : props . deploymentGroupName ,
158
149
deploymentConfigName : ( props . deploymentConfig || LambdaDeploymentConfig . AllAtOnce ) . deploymentConfigName ,
159
150
deploymentStyle : {
0 commit comments