@@ -4,34 +4,41 @@ import { ActionContext, EventTypes, ServerlessIac } from '../types';
44import * as fc from '@alicloud/ros-cdk-fc3' ;
55import * as ram from '@alicloud/ros-cdk-ram' ;
66import * as agw from '@alicloud/ros-cdk-apigateway' ;
7- import { replaceReference , resolveCode } from '../common' ;
7+ import { evalRefValue , replaceReference , resolveCode } from '../common' ;
88
99export class IacStack extends ros . Stack {
10+ private service : string ;
11+
1012 constructor ( scope : ros . Construct , iac : ServerlessIac , context : ActionContext ) {
11- super ( scope , iac . service , {
13+ super ( scope , evalRefValue ( iac . service , iac , context . stage ) , {
1214 stackName : context . stackName ,
13- tags : iac . tags . reduce ( ( acc : { [ key : string ] : string } , tag ) => {
15+ tags : iac . tags ? .reduce ( ( acc : { [ key : string ] : string } , tag ) => {
1416 acc [ tag . key ] = replaceReference ( tag . value , context . stage ) ;
1517 return acc ;
1618 } , { } ) ,
1719 } ) ;
20+ this . service = evalRefValue ( iac . service , iac , context . stage ) ;
1821
1922 // Define Parameters
20- Object . entries ( iac . vars ) . map (
21- ( [ key , value ] ) =>
22- new ros . RosParameter ( this , key , {
23- type : RosParameterType . STRING ,
24- defaultValue : value ,
25- } ) ,
26- ) ;
23+ if ( iac . vars ) {
24+ Object . entries ( iac . vars ) . map (
25+ ( [ key , value ] ) =>
26+ new ros . RosParameter ( this , key , {
27+ type : RosParameterType . STRING ,
28+ defaultValue : value ,
29+ } ) ,
30+ ) ;
31+ }
2732
2833 // Define Mappings
29- new ros . RosMapping ( this , 'stages' , { mapping : replaceReference ( iac . stages , context . stage ) } ) ;
34+ if ( iac . stages ) {
35+ new ros . RosMapping ( this , 'stages' , { mapping : replaceReference ( iac . stages , context . stage ) } ) ;
36+ }
3037
3138 new ros . RosInfo (
3239 this ,
3340 ros . RosInfo . description ,
34- replaceReference ( `${ iac . service } stack` , context . stage ) ,
41+ replaceReference ( `${ this . service } stack` , context . stage ) ,
3542 ) ;
3643
3744 iac . functions . forEach ( ( fnc ) => {
@@ -57,10 +64,10 @@ export class IacStack extends ros.Stack {
5764 if ( apiGateway ?. length ) {
5865 const gatewayAccessRole = new ram . RosRole (
5966 this ,
60- replaceReference ( `${ iac . service } _role` , context . stage ) ,
67+ replaceReference ( `${ this . service } _role` , context . stage ) ,
6168 {
62- roleName : replaceReference ( `${ iac . service } -gateway-access-role` , context . stage ) ,
63- description : replaceReference ( `${ iac . service } role` , context . stage ) ,
69+ roleName : replaceReference ( `${ this . service } -gateway-access-role` , context . stage ) ,
70+ description : replaceReference ( `${ this . service } role` , context . stage ) ,
6471 assumeRolePolicyDocument : {
6572 version : '1' ,
6673 statement : [
@@ -75,7 +82,7 @@ export class IacStack extends ros.Stack {
7582 } ,
7683 policies : [
7784 {
78- policyName : replaceReference ( `${ iac . service } -policy` , context . stage ) ,
85+ policyName : replaceReference ( `${ this . service } -policy` , context . stage ) ,
7986 policyDocument : {
8087 version : '1' ,
8188 statement : [
@@ -95,9 +102,9 @@ export class IacStack extends ros.Stack {
95102
96103 const apiGatewayGroup = new agw . RosGroup (
97104 this ,
98- replaceReference ( `${ iac . service } _apigroup` , context . stage ) ,
105+ replaceReference ( `${ this . service } _apigroup` , context . stage ) ,
99106 {
100- groupName : replaceReference ( `${ iac . service } _apigroup` , context . stage ) ,
107+ groupName : replaceReference ( `${ this . service } _apigroup` , context . stage ) ,
101108 tags : replaceReference ( iac . tags , context . stage ) ,
102109 } ,
103110 true ,
@@ -137,7 +144,7 @@ export class IacStack extends ros.Stack {
137144 serviceProtocol : 'FunctionCompute' ,
138145 functionComputeConfig : {
139146 fcRegionId : context . region ,
140- functionName : replaceReference ( trigger . backend , trigger . backend ) ,
147+ functionName : replaceReference ( trigger . backend , context . stage ) ,
141148 roleArn : gatewayAccessRole . attrArn ,
142149 fcVersion : '3.0' ,
143150 } ,
0 commit comments