@gradientedge/cdk-utils 4.4.3 → 4.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/app/api-destined-function/node_modules/.yarn-integrity +2 -89
  2. package/app/api-destined-function/package.json +1 -5
  3. package/lerna.json +6 -0
  4. package/package.json +9 -9
  5. package/api-docs/AcmManager.html +0 -622
  6. package/api-docs/AcmProps.html +0 -238
  7. package/api-docs/AlarmProps.html +0 -238
  8. package/api-docs/AlarmStatusWidgetProps.html +0 -238
  9. package/api-docs/ApiDestinationEvent.html +0 -297
  10. package/api-docs/ApiDestinationEventType.html +0 -238
  11. package/api-docs/ApiDestinedLambda.html +0 -297
  12. package/api-docs/ApiDestinedLambdaEnvironment.html +0 -238
  13. package/api-docs/ApiDestinedLambdaType.html +0 -238
  14. package/api-docs/ApiDestinedRestApi.html +0 -297
  15. package/api-docs/ApiDestinedRestApiType.html +0 -238
  16. package/api-docs/ApiManager.html +0 -766
  17. package/api-docs/ApiToEventBridgeTarget.html +0 -1877
  18. package/api-docs/ApiToEventBridgeTarget.jpg +0 -0
  19. package/api-docs/ApiToEventBridgeTargetEventProps.html +0 -238
  20. package/api-docs/ApiToEventBridgeTargetLambdaProps.html +0 -238
  21. package/api-docs/ApiToEventBridgeTargetProps.html +0 -238
  22. package/api-docs/ApiToEventBridgeTargetRestApiProps.html +0 -238
  23. package/api-docs/AppConfigManager.html +0 -1203
  24. package/api-docs/AppConfigProps.html +0 -238
  25. package/api-docs/CloudFrontManager.html +0 -2402
  26. package/api-docs/CloudFrontProps.html +0 -238
  27. package/api-docs/CloudTrailManager.html +0 -637
  28. package/api-docs/CloudTrailProps.html +0 -238
  29. package/api-docs/CloudWatchManager.html +0 -2986
  30. package/api-docs/CloudfrontFunctionProps.html +0 -238
  31. package/api-docs/CodeBuildManager.html +0 -736
  32. package/api-docs/CommonConstruct.html +0 -1299
  33. package/api-docs/CommonStack.html +0 -813
  34. package/api-docs/CommonStackProps.html +0 -238
  35. package/api-docs/DashboardProps.html +0 -238
  36. package/api-docs/DistributionProps.html +0 -238
  37. package/api-docs/DynamodbManager.html +0 -530
  38. package/api-docs/EcrManager.html +0 -530
  39. package/api-docs/EcsClusterProps.html +0 -238
  40. package/api-docs/EcsManager.html +0 -880
  41. package/api-docs/EcsTaskProps.html +0 -238
  42. package/api-docs/EksClusterProps.html +0 -238
  43. package/api-docs/EksManager.html +0 -580
  44. package/api-docs/EventBusProps.html +0 -238
  45. package/api-docs/EventManager.html +0 -1454
  46. package/api-docs/EventRuleProps.html +0 -238
  47. package/api-docs/GraphQLApiLambda.html +0 -1671
  48. package/api-docs/GraphQLApiLambda.jpg +0 -0
  49. package/api-docs/GraphQlApiLambdaEnvironment.html +0 -238
  50. package/api-docs/GraphQlApiLambdaProps.html +0 -238
  51. package/api-docs/GraphWidgetProps.html +0 -238
  52. package/api-docs/HealthCheck.html +0 -238
  53. package/api-docs/IamManager.html +0 -3821
  54. package/api-docs/LambdaEdgeProps.html +0 -238
  55. package/api-docs/LambdaEnvironment.html +0 -238
  56. package/api-docs/LambdaManager.html +0 -2378
  57. package/api-docs/LambdaProps.html +0 -238
  58. package/api-docs/LifecycleRule.html +0 -238
  59. package/api-docs/LogManager.html +0 -955
  60. package/api-docs/LogProps.html +0 -238
  61. package/api-docs/LogQueryWidgetProps.html +0 -238
  62. package/api-docs/MetricFilterProps.html +0 -238
  63. package/api-docs/MetricProps.html +0 -238
  64. package/api-docs/NumericWidgetProps.html +0 -238
  65. package/api-docs/Route53Manager.html +0 -1460
  66. package/api-docs/Route53Props.html +0 -238
  67. package/api-docs/RuleProps.html +0 -238
  68. package/api-docs/S3BucketProps.html +0 -238
  69. package/api-docs/S3Manager.html +0 -1546
  70. package/api-docs/SSMParameterReader.html +0 -431
  71. package/api-docs/SSMParameterReaderProps.html +0 -238
  72. package/api-docs/SecretsManager.html +0 -1140
  73. package/api-docs/SiteWithEcsBackend.html +0 -2391
  74. package/api-docs/SiteWithEcsBackendProps.html +0 -238
  75. package/api-docs/SnsManager.html +0 -780
  76. package/api-docs/SsmManager.html +0 -955
  77. package/api-docs/StaticSite.html +0 -1358
  78. package/api-docs/StaticSiteProps.html +0 -238
  79. package/api-docs/SubscriptionProps.html +0 -238
  80. package/api-docs/TableProps.html +0 -238
  81. package/api-docs/TextWidgetProps.html +0 -238
  82. package/api-docs/VpcManager.html +0 -986
  83. package/api-docs/WafIPSetProps.html +0 -238
  84. package/api-docs/WafManager.html +0 -730
  85. package/api-docs/WafWebACLProps.html +0 -238
  86. package/api-docs/common_construct.ts.html +0 -279
  87. package/api-docs/common_stack.ts.html +0 -303
  88. package/api-docs/construct_api-to-eventbridge-target_api-destination-event.ts.html +0 -175
  89. package/api-docs/construct_api-to-eventbridge-target_api-destined-lambda.ts.html +0 -178
  90. package/api-docs/construct_api-to-eventbridge-target_api-destined-rest-api.ts.html +0 -190
  91. package/api-docs/construct_api-to-eventbridge-target_main.ts.html +0 -751
  92. package/api-docs/construct_graphql-api-lambda_main.ts.html +0 -408
  93. package/api-docs/construct_site-with-ecs-backend_main.ts.html +0 -544
  94. package/api-docs/construct_static-site_main.ts.html +0 -374
  95. package/api-docs/global.html +0 -1530
  96. package/api-docs/index.html +0 -208
  97. package/api-docs/logo.png +0 -0
  98. package/api-docs/manager_aws_acm-manager.ts.html +0 -236
  99. package/api-docs/manager_aws_api-manager.ts.html +0 -260
  100. package/api-docs/manager_aws_app-config-manager.ts.html +0 -310
  101. package/api-docs/manager_aws_cloudfront-manager.ts.html +0 -491
  102. package/api-docs/manager_aws_cloudtrail-manager.ts.html +0 -251
  103. package/api-docs/manager_aws_cloudwatch-manager.ts.html +0 -553
  104. package/api-docs/manager_aws_codebuild-manager.ts.html +0 -240
  105. package/api-docs/manager_aws_dynamodb-manager.ts.html +0 -219
  106. package/api-docs/manager_aws_ecr-manager.ts.html +0 -199
  107. package/api-docs/manager_aws_ecs-manager.ts.html +0 -259
  108. package/api-docs/manager_aws_eks-manager.ts.html +0 -260
  109. package/api-docs/manager_aws_event-manager.ts.html +0 -336
  110. package/api-docs/manager_aws_iam-manager.ts.html +0 -573
  111. package/api-docs/manager_aws_lambda-manager.ts.html +0 -400
  112. package/api-docs/manager_aws_log-manager.ts.html +0 -259
  113. package/api-docs/manager_aws_route53-manager.ts.html +0 -333
  114. package/api-docs/manager_aws_s3-manager.ts.html +0 -361
  115. package/api-docs/manager_aws_secrets-manager.ts.html +0 -274
  116. package/api-docs/manager_aws_sns-manager.ts.html +0 -246
  117. package/api-docs/manager_aws_ssm-manager.ts.html +0 -273
  118. package/api-docs/manager_aws_vpc-manager.ts.html +0 -244
  119. package/api-docs/manager_aws_waf-manager.ts.html +0 -232
  120. package/api-docs/scripts/app.min.js +0 -1
  121. package/api-docs/scripts/linenumber.js +0 -26
  122. package/api-docs/scripts/search.js +0 -39
  123. package/api-docs/styles/app.min.css +0 -1
  124. package/api-docs/styles/iframe.css +0 -13
  125. package/api-docs/styles/prettify-jsdoc.css +0 -111
  126. package/api-docs/styles/prettify-tomorrow.css +0 -132
  127. package/api-docs/styles/reset.css +0 -44
  128. package/api-docs/styles.css +0 -113
  129. package/api-docs/tutorial-Architecture.html +0 -151
  130. package/api-docs/tutorial-Build.html +0 -150
  131. package/api-docs/tutorial-CI-CD.html +0 -154
  132. package/api-docs/tutorial-Development.html +0 -227
  133. package/api-docs/types_aws_index.ts.html +0 -665
  134. package/api-docs/utils_aws_index.ts.html +0 -192
  135. package/api-docs/utils_index.ts.html +0 -227
  136. package/app/api-destined-function/node_modules/balanced-match/LICENSE.md +0 -21
  137. package/app/api-destined-function/node_modules/balanced-match/README.md +0 -97
  138. package/app/api-destined-function/node_modules/balanced-match/index.js +0 -62
  139. package/app/api-destined-function/node_modules/balanced-match/package.json +0 -48
  140. package/app/api-destined-function/node_modules/brace-expansion/LICENSE +0 -21
  141. package/app/api-destined-function/node_modules/brace-expansion/README.md +0 -129
  142. package/app/api-destined-function/node_modules/brace-expansion/index.js +0 -201
  143. package/app/api-destined-function/node_modules/brace-expansion/package.json +0 -47
  144. package/app/api-destined-function/node_modules/concat-map/.travis.yml +0 -4
  145. package/app/api-destined-function/node_modules/concat-map/LICENSE +0 -18
  146. package/app/api-destined-function/node_modules/concat-map/README.markdown +0 -62
  147. package/app/api-destined-function/node_modules/concat-map/example/map.js +0 -6
  148. package/app/api-destined-function/node_modules/concat-map/index.js +0 -13
  149. package/app/api-destined-function/node_modules/concat-map/package.json +0 -43
  150. package/app/api-destined-function/node_modules/fs.realpath/LICENSE +0 -43
  151. package/app/api-destined-function/node_modules/fs.realpath/README.md +0 -33
  152. package/app/api-destined-function/node_modules/fs.realpath/index.js +0 -66
  153. package/app/api-destined-function/node_modules/fs.realpath/old.js +0 -303
  154. package/app/api-destined-function/node_modules/fs.realpath/package.json +0 -26
  155. package/app/api-destined-function/node_modules/glob/LICENSE +0 -21
  156. package/app/api-destined-function/node_modules/glob/README.md +0 -378
  157. package/app/api-destined-function/node_modules/glob/common.js +0 -236
  158. package/app/api-destined-function/node_modules/glob/glob.js +0 -787
  159. package/app/api-destined-function/node_modules/glob/package.json +0 -52
  160. package/app/api-destined-function/node_modules/glob/sync.js +0 -483
  161. package/app/api-destined-function/node_modules/inflight/LICENSE +0 -15
  162. package/app/api-destined-function/node_modules/inflight/README.md +0 -37
  163. package/app/api-destined-function/node_modules/inflight/inflight.js +0 -54
  164. package/app/api-destined-function/node_modules/inflight/package.json +0 -29
  165. package/app/api-destined-function/node_modules/inherits/LICENSE +0 -16
  166. package/app/api-destined-function/node_modules/inherits/README.md +0 -42
  167. package/app/api-destined-function/node_modules/inherits/inherits.js +0 -9
  168. package/app/api-destined-function/node_modules/inherits/inherits_browser.js +0 -27
  169. package/app/api-destined-function/node_modules/inherits/package.json +0 -29
  170. package/app/api-destined-function/node_modules/minimatch/LICENSE +0 -15
  171. package/app/api-destined-function/node_modules/minimatch/README.md +0 -209
  172. package/app/api-destined-function/node_modules/minimatch/minimatch.js +0 -923
  173. package/app/api-destined-function/node_modules/minimatch/package.json +0 -30
  174. package/app/api-destined-function/node_modules/mkdirp/LICENSE +0 -21
  175. package/app/api-destined-function/node_modules/mkdirp/bin/cmd.js +0 -68
  176. package/app/api-destined-function/node_modules/mkdirp/index.js +0 -31
  177. package/app/api-destined-function/node_modules/mkdirp/lib/find-made.js +0 -29
  178. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  179. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  180. package/app/api-destined-function/node_modules/mkdirp/lib/opts-arg.js +0 -23
  181. package/app/api-destined-function/node_modules/mkdirp/lib/path-arg.js +0 -29
  182. package/app/api-destined-function/node_modules/mkdirp/lib/use-native.js +0 -10
  183. package/app/api-destined-function/node_modules/mkdirp/package.json +0 -44
  184. package/app/api-destined-function/node_modules/mkdirp/readme.markdown +0 -266
  185. package/app/api-destined-function/node_modules/once/LICENSE +0 -15
  186. package/app/api-destined-function/node_modules/once/README.md +0 -79
  187. package/app/api-destined-function/node_modules/once/once.js +0 -42
  188. package/app/api-destined-function/node_modules/once/package.json +0 -33
  189. package/app/api-destined-function/node_modules/path-is-absolute/index.js +0 -20
  190. package/app/api-destined-function/node_modules/path-is-absolute/license +0 -21
  191. package/app/api-destined-function/node_modules/path-is-absolute/package.json +0 -43
  192. package/app/api-destined-function/node_modules/path-is-absolute/readme.md +0 -59
  193. package/app/api-destined-function/node_modules/rimraf/LICENSE +0 -15
  194. package/app/api-destined-function/node_modules/rimraf/README.md +0 -101
  195. package/app/api-destined-function/node_modules/rimraf/bin.js +0 -68
  196. package/app/api-destined-function/node_modules/rimraf/package.json +0 -32
  197. package/app/api-destined-function/node_modules/rimraf/rimraf.js +0 -360
  198. package/app/api-destined-function/node_modules/wrappy/LICENSE +0 -15
  199. package/app/api-destined-function/node_modules/wrappy/README.md +0 -36
  200. package/app/api-destined-function/node_modules/wrappy/package.json +0 -29
  201. package/app/api-destined-function/node_modules/wrappy/wrappy.js +0 -33
  202. package/img/ApiToEventBridgeTarget.jpg +0 -0
  203. package/img/GraphQLApiLambda.jpg +0 -0
  204. package/img/logo.png +0 -0
  205. package/theme/styles.css +0 -113
@@ -1,544 +0,0 @@
1
-
2
-
3
- <!DOCTYPE html>
4
- <html lang="en">
5
-
6
- <head>
7
-
8
- <meta charset="utf-8">
9
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
- <title>Gradient Edge CDK Utils construct/site-with-ecs-backend/main.ts</title>
11
-
12
- <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
13
- <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
14
- <script src="./build/entry.js"></script>
15
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
16
- <!--[if lt IE 9]>
17
- <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
18
- <![endif]-->
19
- <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
20
- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
21
- <link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
22
- <link type="text/css" rel="stylesheet" href="styles/app.min.css">
23
- <link type="text/css" rel="stylesheet" href="styles/iframe.css">
24
- <link type="text/css" rel="stylesheet" href="styles.css">
25
- <script async defer src="https://buttons.github.io/buttons.js"></script>
26
-
27
-
28
- </head>
29
-
30
-
31
-
32
- <body class="layout small-header">
33
- <div id="stickyNavbarOverlay"></div>
34
-
35
-
36
- <div class="top-nav">
37
- <div class="inner">
38
- <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
39
- <span aria-hidden="true"></span>
40
- <span aria-hidden="true"></span>
41
- <span aria-hidden="true"></span>
42
- </a>
43
- <div class="logo">
44
-
45
- <a class="image" href="index.html">
46
- <img src="logo.png" alt="logo">
47
- </a>
48
-
49
-
50
- <a href="index.html">
51
- <h1 class="navbar-item">Gradient Edge CDK Utils Documentation</h1>
52
- </a>
53
-
54
- </div>
55
- <div class="menu">
56
-
57
- <div class="navigation">
58
- <a
59
- href="index.html"
60
- class="link"
61
- >
62
- API Documentation
63
- </a>
64
-
65
- <div class="dropdown is-hoverable is-right">
66
- <a class="dropdown-trigger link">
67
- Tutorials
68
- <i class="fas fa-chevron-down fa-xs"></i>
69
- </a>
70
- <div class="dropdown-menu">
71
- <div class="dropdown-content">
72
-
73
- <a class="dropdown-item" href="tutorial-Architecture.html">
74
- Architecture
75
- </a>
76
-
77
- <a class="dropdown-item" href="tutorial-Build.html">
78
- Build
79
- </a>
80
-
81
- <a class="dropdown-item" href="tutorial-CI-CD.html">
82
- CI-CD
83
- </a>
84
-
85
- <a class="dropdown-item" href="tutorial-Development.html">
86
- Development
87
- </a>
88
-
89
- </div>
90
- </div>
91
- </div>
92
-
93
-
94
-
95
- <a
96
- class="link user-link "
97
- href="https://github.com/gradientedge/cdk-utils"
98
- >
99
- Github
100
- </a>
101
-
102
-
103
-
104
- </div>
105
- </div>
106
- </div>
107
- </div>
108
- <div id="main">
109
- <div
110
- class="sidebar "
111
- id="sidebarNav"
112
- >
113
-
114
- <div class="search-wrapper">
115
- <input id="search" type="text" placeholder="Search docs..." class="input">
116
- </div>
117
-
118
- <nav>
119
-
120
- <h2><a href="index.html">Documentation</a></h2><div class="category"></div><div class="category"><h2>cdk-utils.acm-manager</h2><h3>Classes / Construct</h3><ul><li><a href="AcmManager.html">AcmManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AcmProps.html">AcmProps</a></li></ul></div><div class="category"><h2>cdk-utils.api-manager</h2><h3>Classes / Construct</h3><ul><li><a href="ApiManager.html">ApiManager</a></li></ul></div><div class="category"><h2>cdk-utils.api-to-eventbridge-target</h2><h3>Classes / member</h3><ul><li><a href="ApiDestinationEvent.html">ApiDestinationEvent</a></li><li><a href="ApiDestinedLambda.html">ApiDestinedLambda</a></li><li><a href="ApiDestinedRestApi.html">ApiDestinedRestApi</a></li></ul><h3>Classes / construct</h3><ul><li><a href="ApiToEventBridgeTarget.html">ApiToEventBridgeTarget</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="ApiDestinationEventType.html">ApiDestinationEventType</a></li><li><a href="ApiDestinedLambdaEnvironment.html">ApiDestinedLambdaEnvironment</a></li><li><a href="ApiDestinedLambdaType.html">ApiDestinedLambdaType</a></li><li><a href="ApiDestinedRestApiType.html">ApiDestinedRestApiType</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="ApiToEventBridgeTargetEventProps.html">ApiToEventBridgeTargetEventProps</a></li><li><a href="ApiToEventBridgeTargetLambdaProps.html">ApiToEventBridgeTargetLambdaProps</a></li><li><a href="ApiToEventBridgeTargetProps.html">ApiToEventBridgeTargetProps</a></li><li><a href="ApiToEventBridgeTargetRestApiProps.html">ApiToEventBridgeTargetRestApiProps</a></li></ul></div><div class="category"><h2>cdk-utils.app-config-manager</h2><h3>Classes / Construct</h3><ul><li><a href="AppConfigManager.html">AppConfigManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AppConfigProps.html">AppConfigProps</a></li></ul><h3>Global</h3><ul><li><a href="global.html#ArnsByRegion">ArnsByRegion</a></li></ul></div><div class="category"><h2>cdk-utils.cloudfront-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudFrontManager.html">CloudFrontManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CloudfrontFunctionProps.html">CloudfrontFunctionProps</a></li><li><a href="CloudFrontProps.html">CloudFrontProps</a></li><li><a href="DistributionProps.html">DistributionProps</a></li></ul></div><div class="category"><h2>cdk-utils.cloudtrail-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudTrailManager.html">CloudTrailManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CloudTrailProps.html">CloudTrailProps</a></li></ul></div><div class="category"><h2>cdk-utils.cloudwatch-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CloudWatchManager.html">CloudWatchManager</a></li><li><a href="LogManager.html">LogManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="AlarmProps.html">AlarmProps</a></li><li><a href="AlarmStatusWidgetProps.html">AlarmStatusWidgetProps</a></li><li><a href="DashboardProps.html">DashboardProps</a></li><li><a href="GraphWidgetProps.html">GraphWidgetProps</a></li><li><a href="LogProps.html">LogProps</a></li><li><a href="LogQueryWidgetProps.html">LogQueryWidgetProps</a></li><li><a href="MetricFilterProps.html">MetricFilterProps</a></li><li><a href="MetricProps.html">MetricProps</a></li><li><a href="NumericWidgetProps.html">NumericWidgetProps</a></li><li><a href="TextWidgetProps.html">TextWidgetProps</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CloudWatchWidgetType">CloudWatchWidgetType</a></li></ul></div><div class="category"><h2>cdk-utils.codebuild-manager</h2><h3>Classes / Construct</h3><ul><li><a href="CodeBuildManager.html">CodeBuildManager</a></li></ul></div><div class="category"><h2>cdk-utils.common-construct</h2><h3>Classes / Construct</h3><ul><li><a href="CommonConstruct.html">CommonConstruct</a></li></ul></div><div class="category"><h2>cdk-utils.common-stack</h2><h3>Classes / Construct</h3><ul><li><a href="CommonStack.html">CommonStack</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="CommonStackProps.html">CommonStackProps</a></li></ul></div><div class="category"><h2>cdk-utils.dynamodb-manager</h2><h3>Classes / Construct</h3><ul><li><a href="DynamodbManager.html">DynamodbManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="TableProps.html">TableProps</a></li></ul></div><div class="category"><h2>cdk-utils.ecr-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EcrManager.html">EcrManager</a></li></ul></div><div class="category"><h2>cdk-utils.ecs-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EcsManager.html">EcsManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EcsClusterProps.html">EcsClusterProps</a></li><li><a href="EcsTaskProps.html">EcsTaskProps</a></li></ul></div><div class="category"><h2>cdk-utils.eks-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EksManager.html">EksManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EksClusterProps.html">EksClusterProps</a></li></ul></div><div class="category"><h2>cdk-utils.event-manager</h2><h3>Classes / Construct</h3><ul><li><a href="EventManager.html">EventManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="EventBusProps.html">EventBusProps</a></li><li><a href="EventRuleProps.html">EventRuleProps</a></li><li><a href="RuleProps.html">RuleProps</a></li></ul></div><div class="category"><h2>cdk-utils.graphql-api-lambda</h2><h3>Classes / construct</h3><ul><li><a href="GraphQLApiLambda.html">GraphQLApiLambda</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="GraphQlApiLambdaEnvironment.html">GraphQlApiLambdaEnvironment</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="GraphQlApiLambdaProps.html">GraphQlApiLambdaProps</a></li></ul></div><div class="category"><h2>cdk-utils.iam-manager</h2><h3>Classes / Construct</h3><ul><li><a href="IamManager.html">IamManager</a></li></ul></div><div class="category"><h2>cdk-utils.lambda-manager</h2><h3>Classes / Construct</h3><ul><li><a href="LambdaManager.html">LambdaManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="LambdaEdgeProps.html">LambdaEdgeProps</a></li><li><a href="LambdaProps.html">LambdaProps</a></li></ul><h3>Interfaces / Types</h3><ul><li><a href="LambdaEnvironment.html">LambdaEnvironment</a></li></ul></div><div class="category"><h2>cdk-utils.route53-manager</h2><h3>Classes / Construct</h3><ul><li><a href="Route53Manager.html">Route53Manager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="Route53Props.html">Route53Props</a></li></ul></div><div class="category"><h2>cdk-utils.s3-manager</h2><h3>Classes / Construct</h3><ul><li><a href="S3Manager.html">S3Manager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="LifecycleRule.html">LifecycleRule</a></li><li><a href="S3BucketProps.html">S3BucketProps</a></li></ul></div><div class="category"><h2>cdk-utils.secrets-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SecretsManager.html">SecretsManager</a></li></ul></div><div class="category"><h2>cdk-utils.site-with-ecs-backend</h2><h3>Classes / construct</h3><ul><li><a href="SiteWithEcsBackend.html">SiteWithEcsBackend</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="HealthCheck.html">HealthCheck</a></li><li><a href="SiteWithEcsBackendProps.html">SiteWithEcsBackendProps</a></li></ul></div><div class="category"><h2>cdk-utils.sns-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SnsManager.html">SnsManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="SubscriptionProps.html">SubscriptionProps</a></li></ul></div><div class="category"><h2>cdk-utils.ssm-manager</h2><h3>Classes / Construct</h3><ul><li><a href="SsmManager.html">SsmManager</a></li><li><a href="SSMParameterReader.html">SSMParameterReader</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="SSMParameterReaderProps.html">SSMParameterReaderProps</a></li></ul></div><div class="category"><h2>cdk-utils.static-site</h2><h3>Classes / construct</h3><ul><li><a href="StaticSite.html">StaticSite</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="StaticSiteProps.html">StaticSiteProps</a></li></ul></div><div class="category"><h2>cdk-utils.utils</h2><h3>Global</h3><ul><li><a href="global.html#createCfnOutput">createCfnOutput</a></li><li><a href="global.html#defaultResponseObject">defaultResponseObject</a></li><li><a href="global.html#isDevStage">isDevStage</a></li><li><a href="global.html#isPrdStage">isPrdStage</a></li><li><a href="global.html#isTestStage">isTestStage</a></li><li><a href="global.html#isUatStage">isUatStage</a></li><li><a href="global.html#LogLevel">LogLevel</a></li><li><a href="global.html#redirectError">redirectError</a></li><li><a href="global.html#redirectSuccess">redirectSuccess</a></li></ul></div><div class="category"><h2>cdk-utils.vpc-manager</h2><h3>Classes / Construct</h3><ul><li><a href="VpcManager.html">VpcManager</a></li></ul><h3>Global</h3><ul><li><a href="global.html#CommonVpcIdentifier">CommonVpcIdentifier</a></li></ul></div><div class="category"><h2>cdk-utils.waf-manager</h2><h3>Classes / Construct</h3><ul><li><a href="WafManager.html">WafManager</a></li></ul><h3>Interfaces / Properties</h3><ul><li><a href="WafIPSetProps.html">WafIPSetProps</a></li><li><a href="WafWebACLProps.html">WafWebACLProps</a></li></ul></div>
121
-
122
- </nav>
123
- </div>
124
- <div class="core" id="main-content-wrapper">
125
- <div class="content">
126
- <header class="page-title">
127
- <p>Source</p>
128
- <h1>construct/site-with-ecs-backend/main.ts</h1>
129
- </header>
130
-
131
-
132
-
133
-
134
-
135
- <section>
136
- <article>
137
- <pre class="prettyprint source linenums"><code>import * as cdk from 'aws-cdk-lib'
138
- import * as certificateManager from 'aws-cdk-lib/aws-certificatemanager'
139
- import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'
140
- import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
141
- import * as ec2 from 'aws-cdk-lib/aws-ec2'
142
- import * as ecs from 'aws-cdk-lib/aws-ecs'
143
- import * as ecsPatterns from 'aws-cdk-lib/aws-ecs-patterns'
144
- import * as elb from 'aws-cdk-lib/aws-elasticloadbalancingv2'
145
- import * as iam from 'aws-cdk-lib/aws-iam'
146
- import * as logs from 'aws-cdk-lib/aws-logs'
147
- import * as route53 from 'aws-cdk-lib/aws-route53'
148
- import * as s3 from 'aws-cdk-lib/aws-s3'
149
- import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
150
- import { Construct } from 'constructs'
151
- import { CommonConstruct } from '../../common'
152
- import { SiteWithEcsBackendProps } from '../../types'
153
-
154
- /**
155
- * @stability stable
156
- * @category cdk-utils.site-with-ecs-backend
157
- * @subcategory construct
158
- * @classdesc Provides a construct to create and deploy a site hosted with an clustered ECS/ELB backend
159
- *
160
- * @example
161
- * import { SiteWithEcsBackend, SiteWithEcsBackendProps } '@gradientedge/cdk-utils'
162
- * import { Construct } from 'constructs'
163
- *
164
- * class CustomConstruct extends SiteWithEcsBackend {
165
- * constructor(parent: Construct, id: string, props: SiteWithEcsBackendProps) {
166
- * super(parent, id, props)
167
- * this.props = props
168
- * this.id = id
169
- * this.initResources()
170
- * }
171
- * }
172
- */
173
- export class SiteWithEcsBackend extends CommonConstruct {
174
- /* site properties */
175
- props: SiteWithEcsBackendProps
176
- id: string
177
-
178
- /* site resources */
179
- siteHostedZone: route53.IHostedZone
180
- siteCertificate: certificateManager.ICertificate
181
- siteEcsPolicy: iam.PolicyDocument
182
- siteEcsRole: iam.Role
183
- siteEcsEnvironment: { [key: string]: string }
184
- siteVpc: ec2.IVpc
185
- siteSecrets: any
186
- siteEcsCluster: ecs.Cluster
187
- siteEcsLogGroup: logs.LogGroup
188
- siteEcsBuildArgs: any = {}
189
- siteEcsContainerImage: ecs.AssetImage
190
- siteEcsService: ecs.FargateService
191
- siteEcsTaskDefinition: ecs.FargateTaskDefinition
192
- siteEcsListener: elb.ApplicationListener
193
- siteEcsLoadBalancer: elb.ApplicationLoadBalancer
194
- siteEcsTargetGroup: elb.ApplicationTargetGroup
195
- siteLogBucket: s3.IBucket
196
- siteOrigin: origins.HttpOrigin
197
- siteDistribution: cloudfront.Distribution
198
- siteSecretAlgolia: secretsmanager.ISecret
199
- siteInternalDomainName: string
200
- siteExternalDomainName: string
201
- siteDomainNames: string[]
202
- siteCloudfrontFunction: cloudfront.Function
203
- siteFunctionAssociations: cloudfront.FunctionAssociation[]
204
-
205
- constructor(parent: Construct, id: string, props: SiteWithEcsBackendProps) {
206
- super(parent, id, props)
207
-
208
- this.props = props
209
- this.id = id
210
- }
211
-
212
- /**
213
- * @summary Initialise and provision resources
214
- * @protected
215
- */
216
- protected initResources() {
217
- this.resolveHostedZone()
218
- this.resolveCertificate()
219
- this.resolveSiteSecrets()
220
- this.resolveSiteDomainNames()
221
- this.createVpc()
222
- this.createEcsPolicy()
223
- this.createEcsRole()
224
- this.createEcsEnvironment()
225
- this.createEcsCluster()
226
- this.createEcsLogGroup()
227
- this.createEcsBuildArgs()
228
- this.createEcsContainerImage()
229
- this.createEcsService()
230
- this.createSiteLogBucket()
231
- this.createSiteOrigin()
232
- this.createSiteCloudfrontFunction()
233
- this.resolveSiteFunctionAssociations()
234
- this.createDistribution()
235
- this.createNetworkMappings()
236
- this.invalidateDistributionCache()
237
- }
238
-
239
- /**
240
- * @summary Method to resolve a hosted zone based on domain attributes
241
- * @protected
242
- */
243
- protected resolveHostedZone() {
244
- this.siteHostedZone = this.route53Manager.withHostedZoneFromFullyQualifiedDomainName(
245
- `${this.id}-hosted-zone`,
246
- this,
247
- this.props.useExistingHostedZone
248
- )
249
- }
250
-
251
- /**
252
- * @summary Method to resolve a certificate based on attributes
253
- * @protected
254
- */
255
- protected resolveCertificate() {
256
- /* determine site certificate */
257
- if (
258
- this.props.siteCertificate.useExistingCertificate &amp;&amp;
259
- this.props.siteCertificate.certificateSsmName &amp;&amp;
260
- this.props.siteCertificate.certificateRegion
261
- ) {
262
- this.props.siteCertificate.certificateArn = this.ssMManager.readStringParameterFromRegion(
263
- `${this.id}-certificate-parameter`,
264
- this,
265
- this.props.siteCertificate.certificateSsmName,
266
- this.props.siteCertificate.certificateRegion
267
- )
268
- }
269
- this.siteCertificate = this.acmManager.resolveCertificate(
270
- `${this.id}-certificate`,
271
- this,
272
- this.props.siteCertificate
273
- )
274
- }
275
-
276
- /**
277
- * @summary Method to resolve secrets from SecretsManager
278
- * - To be implemented in the overriding method in the implementation class
279
- * @protected
280
- */
281
- protected resolveSiteSecrets() {}
282
-
283
- /**
284
- * @summary Method to resolve site domain names
285
- * @protected
286
- */
287
- protected resolveSiteDomainNames() {
288
- /* the internal domain name used by ELB */
289
- this.siteInternalDomainName = this.isProductionStage()
290
- ? `${this.props.siteSubDomain}-internal.${this.fullyQualifiedDomainName}`
291
- : `${this.props.siteSubDomain}-internal-${this.props.stage}.${this.fullyQualifiedDomainName}`
292
-
293
- /* the external domain name exposed to CloudFront */
294
- this.siteExternalDomainName = this.isProductionStage()
295
- ? `${this.props.siteSubDomain}.${this.fullyQualifiedDomainName}`
296
- : `${this.props.siteSubDomain}-${this.props.stage}.${this.fullyQualifiedDomainName}`
297
-
298
- this.siteDomainNames = [this.siteExternalDomainName]
299
- }
300
-
301
- /**
302
- * Create VPC
303
- * @protected
304
- */
305
- protected createVpc() {
306
- this.siteVpc = this.vpcManager.createCommonVpc(this, this.props.siteVpc, this.props.siteVpc.vpcName)
307
- }
308
-
309
- /**
310
- * @summary Method to create iam policy for ECS Task
311
- * @protected
312
- */
313
- protected createEcsPolicy() {
314
- this.siteEcsPolicy = new iam.PolicyDocument({
315
- statements: [this.iamManager.statementForReadSecrets(this)],
316
- })
317
- }
318
-
319
- /**
320
- * @summary Method to create iam role for ECS Task
321
- * @protected
322
- */
323
- protected createEcsRole() {
324
- this.siteEcsRole = this.iamManager.createRoleForEcsExecution(`${this.id}-ecs-role`, this, this.siteEcsPolicy)
325
- }
326
-
327
- /**
328
- * @summary Method to create environment variables used by ECS task
329
- * @protected
330
- */
331
- protected createEcsEnvironment() {
332
- this.siteEcsEnvironment = {
333
- NODE_ENV: this.props.nodeEnv,
334
- LOG_LEVEL: this.props.logLevel,
335
- TZ: this.props.timezone,
336
- }
337
- }
338
-
339
- /**
340
- * Method to create an ECS cluster
341
- * @protected
342
- */
343
- protected createEcsCluster() {
344
- this.siteEcsCluster = this.ecsManager.createEcsCluster(
345
- `${this.id}-cluster`,
346
- this,
347
- this.props.siteCluster,
348
- this.siteVpc
349
- )
350
- }
351
-
352
- /**
353
- * Method to create log group used by ECS task
354
- * @protected
355
- */
356
- protected createEcsLogGroup() {
357
- this.siteEcsLogGroup = this.logManager.createLogGroup(`${this.id}-ecs-log-group`, this, this.props.siteLog)
358
- }
359
-
360
- /**
361
- * Method to create docker build arguments for ECS Image step
362
- * @protected
363
- */
364
- protected createEcsBuildArgs() {
365
- this.siteEcsBuildArgs = {}
366
- }
367
-
368
- /**
369
- * Method to create container image for ECS task
370
- * @protected
371
- */
372
- protected createEcsContainerImage() {
373
- this.siteEcsContainerImage = ecs.ContainerImage.fromAsset(this.props.siteEcsContainerImagePath, {
374
- buildArgs: this.siteEcsBuildArgs,
375
- })
376
- }
377
-
378
- /**
379
- * Method to create Application Loadbalanced ECS Fargate Service
380
- * @protected
381
- */
382
- protected createEcsService() {
383
- const fargateService = new ecsPatterns.ApplicationLoadBalancedFargateService(this, `${this.id}-ecs-service`, {
384
- cluster: this.siteEcsCluster,
385
- desiredCount: this.props.siteTask.desiredCount,
386
- enableECSManagedTags: true,
387
- serviceName: `${this.id}-${this.props.stage}`,
388
- cpu: this.props.siteTask.cpu,
389
- loadBalancerName: `${this.id}-${this.props.stage}`,
390
- domainName: this.siteInternalDomainName,
391
- domainZone: this.siteHostedZone,
392
- listenerPort: this.props.siteTask.listenerPort,
393
- memoryLimitMiB: this.props.siteTask.memoryLimitMiB,
394
- healthCheckGracePeriod: cdk.Duration.seconds(60),
395
- assignPublicIp: true,
396
- taskImageOptions: {
397
- enableLogging: true,
398
- logDriver: ecs.LogDriver.awsLogs({
399
- logGroup: this.siteEcsLogGroup,
400
- streamPrefix: `${this.id}-${this.props.stage}/ecs`,
401
- }),
402
- image: this.siteEcsContainerImage,
403
- executionRole: this.siteEcsRole,
404
- taskRole: this.siteEcsRole,
405
- containerPort: this.props.siteTask.taskImageOptions?.containerPort,
406
- environment: this.siteEcsEnvironment,
407
- secrets: this.siteSecrets,
408
- },
409
- })
410
-
411
- if (this.props.siteHealthCheck) {
412
- fargateService.targetGroup.configureHealthCheck({
413
- enabled: this.props.siteHealthCheck.enabled ?? true,
414
- path: this.props.siteHealthCheck.path ?? '/',
415
- port: this.props.siteHealthCheck.port,
416
- interval: cdk.Duration.seconds(this.props.siteHealthCheck.intervalInSecs),
417
- timeout: cdk.Duration.seconds(this.props.siteHealthCheck.timeoutInSecs),
418
- healthyThresholdCount: this.props.siteHealthCheck.healthyThresholdCount,
419
- unhealthyThresholdCount: this.props.siteHealthCheck.unhealthyThresholdCount,
420
- healthyGrpcCodes: this.props.siteHealthCheck.healthyGrpcCodes,
421
- healthyHttpCodes: this.props.siteHealthCheck.healthyHttpCodes,
422
- protocol: this.props.siteHealthCheck.protocol,
423
- })
424
- }
425
-
426
- this.siteEcsService = fargateService.service
427
- this.siteEcsTaskDefinition = fargateService.taskDefinition
428
- this.siteEcsListener = fargateService.listener
429
- this.siteEcsLoadBalancer = fargateService.loadBalancer
430
- this.siteEcsTargetGroup = fargateService.targetGroup
431
- }
432
-
433
- /**
434
- * Method to create log bucket for site distribution
435
- * @protected
436
- */
437
- protected createSiteLogBucket() {
438
- this.siteLogBucket = this.s3Manager.createS3Bucket(`${this.id}-site-logs`, this, this.props.siteLogBucket)
439
- }
440
-
441
- protected createSiteOrigin() {
442
- this.siteOrigin = new origins.HttpOrigin(this.siteEcsLoadBalancer.loadBalancerDnsName, {
443
- httpPort: this.props.siteTask.listenerPort,
444
- protocolPolicy: cloudfront.OriginProtocolPolicy.HTTP_ONLY,
445
- })
446
- }
447
-
448
- /**
449
- * @summary Method to create a site cloudfront function
450
- * @protected
451
- */
452
- protected createSiteCloudfrontFunction() {
453
- if (this.props.siteCloudfrontFunctionProps) {
454
- this.siteCloudfrontFunction = this.cloudFrontManager.createCloudfrontFunction(
455
- `${this.id}-function`,
456
- this,
457
- this.props.siteCloudfrontFunctionProps
458
- )
459
- }
460
- }
461
-
462
- /**
463
- * @summary Method to create a site cloudfront function associations
464
- * @protected
465
- */
466
- protected resolveSiteFunctionAssociations() {
467
- if (this.props.siteCloudfrontFunctionProps) {
468
- this.siteFunctionAssociations = [
469
- {
470
- function: this.siteCloudfrontFunction,
471
- eventType: cloudfront.FunctionEventType.VIEWER_REQUEST,
472
- },
473
- ]
474
- }
475
- }
476
-
477
- /**
478
- * Method to create Site distribution
479
- * @protected
480
- */
481
- protected createDistribution() {
482
- this.siteDistribution = this.cloudFrontManager.createDistributionWithHttpOrigin(
483
- `${this.id}-distribution`,
484
- this,
485
- this.props.siteDistribution,
486
- this.siteOrigin,
487
- this.siteDomainNames,
488
- this.siteLogBucket,
489
- this.siteCertificate,
490
- this.siteFunctionAssociations
491
- )
492
- }
493
-
494
- /**
495
- * Method to create Route53 records for distribution
496
- * @protected
497
- */
498
- protected createNetworkMappings() {
499
- this.route53Manager.createCloudFrontTargetARecord(
500
- `${this.id}-a-record`,
501
- this,
502
- this.siteDistribution,
503
- this.siteHostedZone,
504
- this.props.siteRecordName
505
- )
506
- }
507
-
508
- /**
509
- * Method to invalidation the cloudfront distribution cache after a deployment
510
- * @protected
511
- */
512
- protected invalidateDistributionCache() {
513
- if (this.props.siteCacheInvalidationDockerFilePath) {
514
- this.cloudFrontManager.invalidateCache(
515
- `${this.id}-cache-invalidation`,
516
- this,
517
- this.props.siteCacheInvalidationDockerFilePath,
518
- this.siteDistribution.distributionId
519
- )
520
- }
521
- }
522
- }
523
- </code></pre>
524
- </article>
525
- </section>
526
-
527
-
528
-
529
-
530
- </div>
531
-
532
- </div>
533
- <div id="side-nav" class="side-nav">
534
- </div>
535
- </div>
536
- <script src="scripts/app.min.js"></script>
537
- <script>PR.prettyPrint();</script>
538
- <script src="scripts/linenumber.js"> </script>
539
-
540
- <script src="scripts/search.js"> </script>
541
-
542
-
543
- </body>
544
- </html>