@gradientedge/cdk-utils 4.3.2 → 4.4.3

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 (400) hide show
  1. package/README.md +39 -28
  2. package/api-docs/AcmManager.html +622 -0
  3. package/api-docs/AcmProps.html +238 -0
  4. package/api-docs/AlarmProps.html +238 -0
  5. package/api-docs/AlarmStatusWidgetProps.html +238 -0
  6. package/api-docs/ApiDestinationEvent.html +297 -0
  7. package/api-docs/ApiDestinationEventType.html +238 -0
  8. package/api-docs/ApiDestinedLambda.html +297 -0
  9. package/api-docs/ApiDestinedLambdaEnvironment.html +238 -0
  10. package/api-docs/ApiDestinedLambdaType.html +238 -0
  11. package/api-docs/ApiDestinedRestApi.html +297 -0
  12. package/api-docs/ApiDestinedRestApiType.html +238 -0
  13. package/api-docs/ApiManager.html +766 -0
  14. package/api-docs/ApiToEventBridgeTarget.html +1877 -0
  15. package/api-docs/ApiToEventBridgeTarget.jpg +0 -0
  16. package/api-docs/ApiToEventBridgeTargetEventProps.html +238 -0
  17. package/api-docs/ApiToEventBridgeTargetLambdaProps.html +238 -0
  18. package/api-docs/ApiToEventBridgeTargetProps.html +238 -0
  19. package/api-docs/ApiToEventBridgeTargetRestApiProps.html +238 -0
  20. package/api-docs/AppConfigManager.html +1203 -0
  21. package/api-docs/AppConfigProps.html +238 -0
  22. package/api-docs/CloudFrontManager.html +2402 -0
  23. package/api-docs/CloudFrontProps.html +238 -0
  24. package/api-docs/CloudTrailManager.html +637 -0
  25. package/api-docs/CloudTrailProps.html +238 -0
  26. package/api-docs/CloudWatchManager.html +2986 -0
  27. package/api-docs/CloudfrontFunctionProps.html +238 -0
  28. package/api-docs/CodeBuildManager.html +736 -0
  29. package/api-docs/CommonConstruct.html +1299 -0
  30. package/api-docs/CommonStack.html +813 -0
  31. package/api-docs/CommonStackProps.html +238 -0
  32. package/api-docs/DashboardProps.html +238 -0
  33. package/api-docs/DistributionProps.html +238 -0
  34. package/api-docs/DynamodbManager.html +530 -0
  35. package/api-docs/EcrManager.html +530 -0
  36. package/api-docs/EcsClusterProps.html +238 -0
  37. package/api-docs/EcsManager.html +880 -0
  38. package/api-docs/EcsTaskProps.html +238 -0
  39. package/api-docs/EksClusterProps.html +238 -0
  40. package/api-docs/EksManager.html +580 -0
  41. package/api-docs/EventBusProps.html +238 -0
  42. package/api-docs/EventManager.html +1454 -0
  43. package/api-docs/EventRuleProps.html +238 -0
  44. package/api-docs/GraphQLApiLambda.html +1671 -0
  45. package/api-docs/GraphQLApiLambda.jpg +0 -0
  46. package/api-docs/GraphQlApiLambdaEnvironment.html +238 -0
  47. package/api-docs/GraphQlApiLambdaProps.html +238 -0
  48. package/api-docs/GraphWidgetProps.html +238 -0
  49. package/api-docs/HealthCheck.html +238 -0
  50. package/api-docs/IamManager.html +3821 -0
  51. package/api-docs/LambdaEdgeProps.html +238 -0
  52. package/api-docs/LambdaEnvironment.html +238 -0
  53. package/api-docs/LambdaManager.html +2378 -0
  54. package/api-docs/LambdaProps.html +238 -0
  55. package/api-docs/LifecycleRule.html +238 -0
  56. package/api-docs/LogManager.html +955 -0
  57. package/api-docs/LogProps.html +238 -0
  58. package/api-docs/LogQueryWidgetProps.html +238 -0
  59. package/api-docs/MetricFilterProps.html +238 -0
  60. package/api-docs/MetricProps.html +238 -0
  61. package/api-docs/NumericWidgetProps.html +238 -0
  62. package/api-docs/Route53Manager.html +1460 -0
  63. package/api-docs/Route53Props.html +238 -0
  64. package/api-docs/RuleProps.html +238 -0
  65. package/api-docs/S3BucketProps.html +238 -0
  66. package/api-docs/S3Manager.html +1546 -0
  67. package/api-docs/SSMParameterReader.html +431 -0
  68. package/api-docs/SSMParameterReaderProps.html +238 -0
  69. package/api-docs/SecretsManager.html +1140 -0
  70. package/api-docs/SiteWithEcsBackend.html +2391 -0
  71. package/api-docs/SiteWithEcsBackendProps.html +238 -0
  72. package/api-docs/SnsManager.html +780 -0
  73. package/api-docs/SsmManager.html +955 -0
  74. package/api-docs/StaticSite.html +1358 -0
  75. package/api-docs/StaticSiteProps.html +238 -0
  76. package/api-docs/SubscriptionProps.html +238 -0
  77. package/api-docs/TableProps.html +238 -0
  78. package/api-docs/TextWidgetProps.html +238 -0
  79. package/api-docs/VpcManager.html +986 -0
  80. package/api-docs/WafIPSetProps.html +238 -0
  81. package/api-docs/WafManager.html +730 -0
  82. package/api-docs/WafWebACLProps.html +238 -0
  83. package/api-docs/common_construct.ts.html +279 -0
  84. package/api-docs/common_stack.ts.html +303 -0
  85. package/api-docs/construct_api-to-eventbridge-target_api-destination-event.ts.html +175 -0
  86. package/api-docs/construct_api-to-eventbridge-target_api-destined-lambda.ts.html +178 -0
  87. package/api-docs/construct_api-to-eventbridge-target_api-destined-rest-api.ts.html +190 -0
  88. package/api-docs/construct_api-to-eventbridge-target_main.ts.html +751 -0
  89. package/api-docs/construct_graphql-api-lambda_main.ts.html +408 -0
  90. package/api-docs/construct_site-with-ecs-backend_main.ts.html +544 -0
  91. package/api-docs/construct_static-site_main.ts.html +374 -0
  92. package/api-docs/global.html +1530 -0
  93. package/api-docs/index.html +208 -0
  94. package/api-docs/logo.png +0 -0
  95. package/api-docs/manager_aws_acm-manager.ts.html +236 -0
  96. package/api-docs/manager_aws_api-manager.ts.html +260 -0
  97. package/api-docs/manager_aws_app-config-manager.ts.html +310 -0
  98. package/api-docs/manager_aws_cloudfront-manager.ts.html +491 -0
  99. package/api-docs/manager_aws_cloudtrail-manager.ts.html +251 -0
  100. package/api-docs/manager_aws_cloudwatch-manager.ts.html +553 -0
  101. package/api-docs/manager_aws_codebuild-manager.ts.html +240 -0
  102. package/api-docs/manager_aws_dynamodb-manager.ts.html +219 -0
  103. package/api-docs/manager_aws_ecr-manager.ts.html +199 -0
  104. package/api-docs/manager_aws_ecs-manager.ts.html +259 -0
  105. package/api-docs/manager_aws_eks-manager.ts.html +260 -0
  106. package/api-docs/manager_aws_event-manager.ts.html +336 -0
  107. package/api-docs/manager_aws_iam-manager.ts.html +573 -0
  108. package/api-docs/manager_aws_lambda-manager.ts.html +400 -0
  109. package/api-docs/manager_aws_log-manager.ts.html +259 -0
  110. package/api-docs/manager_aws_route53-manager.ts.html +333 -0
  111. package/api-docs/manager_aws_s3-manager.ts.html +361 -0
  112. package/api-docs/manager_aws_secrets-manager.ts.html +274 -0
  113. package/api-docs/manager_aws_sns-manager.ts.html +246 -0
  114. package/api-docs/manager_aws_ssm-manager.ts.html +273 -0
  115. package/api-docs/manager_aws_vpc-manager.ts.html +244 -0
  116. package/api-docs/manager_aws_waf-manager.ts.html +232 -0
  117. package/api-docs/scripts/app.min.js +1 -0
  118. package/api-docs/scripts/linenumber.js +26 -0
  119. package/api-docs/scripts/search.js +39 -0
  120. package/api-docs/styles/app.min.css +1 -0
  121. package/api-docs/styles/iframe.css +13 -0
  122. package/api-docs/styles/prettify-jsdoc.css +111 -0
  123. package/api-docs/styles/prettify-tomorrow.css +132 -0
  124. package/api-docs/styles/reset.css +44 -0
  125. package/api-docs/styles.css +113 -0
  126. package/api-docs/tutorial-Architecture.html +151 -0
  127. package/api-docs/tutorial-Build.html +150 -0
  128. package/api-docs/tutorial-CI-CD.html +154 -0
  129. package/api-docs/tutorial-Development.html +227 -0
  130. package/api-docs/types_aws_index.ts.html +665 -0
  131. package/api-docs/utils_aws_index.ts.html +192 -0
  132. package/api-docs/utils_index.ts.html +227 -0
  133. package/app/api-destined-function/node_modules/.yarn-integrity +180 -0
  134. package/app/api-destined-function/node_modules/@types/uuid/LICENSE +21 -0
  135. package/app/api-destined-function/node_modules/@types/uuid/README.md +16 -0
  136. package/app/api-destined-function/node_modules/@types/uuid/index.d.mts +10 -0
  137. package/app/api-destined-function/node_modules/@types/uuid/index.d.ts +80 -0
  138. package/app/api-destined-function/node_modules/@types/uuid/package.json +54 -0
  139. package/app/api-destined-function/node_modules/balanced-match/LICENSE.md +21 -0
  140. package/app/api-destined-function/node_modules/balanced-match/README.md +97 -0
  141. package/app/api-destined-function/node_modules/balanced-match/index.js +62 -0
  142. package/app/api-destined-function/node_modules/balanced-match/package.json +48 -0
  143. package/app/api-destined-function/node_modules/brace-expansion/LICENSE +21 -0
  144. package/app/api-destined-function/node_modules/brace-expansion/README.md +129 -0
  145. package/app/api-destined-function/node_modules/brace-expansion/index.js +201 -0
  146. package/app/api-destined-function/node_modules/brace-expansion/package.json +47 -0
  147. package/app/api-destined-function/node_modules/concat-map/.travis.yml +4 -0
  148. package/app/api-destined-function/node_modules/concat-map/LICENSE +18 -0
  149. package/app/api-destined-function/node_modules/concat-map/README.markdown +62 -0
  150. package/app/api-destined-function/node_modules/concat-map/example/map.js +6 -0
  151. package/app/api-destined-function/node_modules/concat-map/index.js +13 -0
  152. package/app/api-destined-function/node_modules/concat-map/package.json +43 -0
  153. package/app/api-destined-function/node_modules/fs.realpath/LICENSE +43 -0
  154. package/app/api-destined-function/node_modules/fs.realpath/README.md +33 -0
  155. package/app/api-destined-function/node_modules/fs.realpath/index.js +66 -0
  156. package/app/api-destined-function/node_modules/fs.realpath/old.js +303 -0
  157. package/app/api-destined-function/node_modules/fs.realpath/package.json +26 -0
  158. package/app/api-destined-function/node_modules/glob/LICENSE +21 -0
  159. package/app/api-destined-function/node_modules/glob/README.md +378 -0
  160. package/app/api-destined-function/node_modules/glob/common.js +236 -0
  161. package/app/api-destined-function/node_modules/glob/glob.js +787 -0
  162. package/app/api-destined-function/node_modules/glob/package.json +52 -0
  163. package/app/api-destined-function/node_modules/glob/sync.js +483 -0
  164. package/app/api-destined-function/node_modules/inflight/LICENSE +15 -0
  165. package/app/api-destined-function/node_modules/inflight/README.md +37 -0
  166. package/app/api-destined-function/node_modules/inflight/inflight.js +54 -0
  167. package/app/api-destined-function/node_modules/inflight/package.json +29 -0
  168. package/app/api-destined-function/node_modules/inherits/LICENSE +16 -0
  169. package/app/api-destined-function/node_modules/inherits/README.md +42 -0
  170. package/app/api-destined-function/node_modules/inherits/inherits.js +9 -0
  171. package/app/api-destined-function/node_modules/inherits/inherits_browser.js +27 -0
  172. package/app/api-destined-function/node_modules/inherits/package.json +29 -0
  173. package/app/api-destined-function/node_modules/minimatch/LICENSE +15 -0
  174. package/app/api-destined-function/node_modules/minimatch/README.md +209 -0
  175. package/app/api-destined-function/node_modules/minimatch/minimatch.js +923 -0
  176. package/app/api-destined-function/node_modules/minimatch/package.json +30 -0
  177. package/app/api-destined-function/node_modules/mkdirp/LICENSE +21 -0
  178. package/app/api-destined-function/node_modules/mkdirp/bin/cmd.js +68 -0
  179. package/app/api-destined-function/node_modules/mkdirp/index.js +31 -0
  180. package/app/api-destined-function/node_modules/mkdirp/lib/find-made.js +29 -0
  181. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  182. package/app/api-destined-function/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  183. package/app/api-destined-function/node_modules/mkdirp/lib/opts-arg.js +23 -0
  184. package/app/api-destined-function/node_modules/mkdirp/lib/path-arg.js +29 -0
  185. package/app/api-destined-function/node_modules/mkdirp/lib/use-native.js +10 -0
  186. package/app/api-destined-function/node_modules/mkdirp/package.json +44 -0
  187. package/app/api-destined-function/node_modules/mkdirp/readme.markdown +266 -0
  188. package/app/api-destined-function/node_modules/once/LICENSE +15 -0
  189. package/app/api-destined-function/node_modules/once/README.md +79 -0
  190. package/app/api-destined-function/node_modules/once/once.js +42 -0
  191. package/app/api-destined-function/node_modules/once/package.json +33 -0
  192. package/app/api-destined-function/node_modules/path-is-absolute/index.js +20 -0
  193. package/app/api-destined-function/node_modules/path-is-absolute/license +21 -0
  194. package/app/api-destined-function/node_modules/path-is-absolute/package.json +43 -0
  195. package/app/api-destined-function/node_modules/path-is-absolute/readme.md +59 -0
  196. package/app/api-destined-function/node_modules/rimraf/LICENSE +15 -0
  197. package/app/api-destined-function/node_modules/rimraf/README.md +101 -0
  198. package/app/api-destined-function/node_modules/rimraf/bin.js +68 -0
  199. package/app/api-destined-function/node_modules/rimraf/package.json +32 -0
  200. package/app/api-destined-function/node_modules/rimraf/rimraf.js +360 -0
  201. package/app/api-destined-function/node_modules/uuid/LICENSE.md +9 -0
  202. package/app/api-destined-function/node_modules/uuid/README.md +505 -0
  203. package/app/api-destined-function/node_modules/uuid/package.json +135 -0
  204. package/app/api-destined-function/node_modules/uuid/wrapper.mjs +10 -0
  205. package/app/api-destined-function/node_modules/wrappy/LICENSE +15 -0
  206. package/app/api-destined-function/node_modules/wrappy/README.md +36 -0
  207. package/app/api-destined-function/node_modules/wrappy/package.json +29 -0
  208. package/app/api-destined-function/node_modules/wrappy/wrappy.js +33 -0
  209. package/app/api-destined-function/package.json +29 -0
  210. package/app/api-destined-function/src/lib/lambda.ts +31 -0
  211. package/img/ApiToEventBridgeTarget.jpg +0 -0
  212. package/img/GraphQLApiLambda.jpg +0 -0
  213. package/img/logo.png +0 -0
  214. package/package.json +17 -18
  215. package/src/lib/common/{commonConstruct.ts → construct.ts} +3 -13
  216. package/src/lib/common/index.ts +2 -2
  217. package/src/lib/common/{commonStack.ts → stack.ts} +5 -14
  218. package/src/lib/construct/api-to-eventbridge-target/api-destination-event.ts +17 -0
  219. package/src/lib/construct/api-to-eventbridge-target/api-destined-lambda.ts +20 -0
  220. package/src/lib/construct/api-to-eventbridge-target/api-destined-rest-api.ts +32 -0
  221. package/src/lib/construct/api-to-eventbridge-target/index.ts +4 -0
  222. package/src/lib/construct/api-to-eventbridge-target/main.ts +593 -0
  223. package/src/lib/construct/graphql-api-lambda/index.ts +1 -0
  224. package/src/lib/construct/{graphQLApiLambda.ts → graphql-api-lambda/main.ts} +11 -20
  225. package/src/lib/construct/index.ts +4 -3
  226. package/src/lib/construct/site-with-ecs-backend/index.ts +1 -0
  227. package/src/lib/construct/{siteWithEcsBackend.ts → site-with-ecs-backend/main.ts} +6 -17
  228. package/src/lib/construct/static-site/index.ts +1 -0
  229. package/src/lib/construct/{staticSite.ts → static-site/main.ts} +5 -16
  230. package/src/lib/manager/aws/{acmManager.ts → acm-manager.ts} +3 -2
  231. package/src/lib/manager/aws/{apiManager.ts → api-manager.ts} +6 -5
  232. package/src/lib/manager/aws/{appConfigManager.ts → app-config-manager.ts} +5 -3
  233. package/src/lib/manager/aws/{cloudFrontManager.ts → cloudfront-manager.ts} +3 -2
  234. package/src/lib/manager/aws/{cloudTrailManager.ts → cloudtrail-manager.ts} +3 -2
  235. package/src/lib/manager/aws/{cloudWatchManager.ts → cloudwatch-manager.ts} +5 -3
  236. package/src/lib/manager/aws/{codeBuildManager.ts → codebuild-manager.ts} +3 -2
  237. package/src/lib/manager/aws/{dynamodbManager.ts → dynamodb-manager.ts} +3 -2
  238. package/src/lib/manager/aws/{ecrManager.ts → ecr-manager.ts} +3 -2
  239. package/src/lib/manager/aws/{ecsManager.ts → ecs-manager.ts} +3 -2
  240. package/src/lib/manager/aws/{eksManager.ts → eks-manager.ts} +3 -2
  241. package/src/lib/manager/aws/{eventManager.ts → event-manager.ts} +57 -2
  242. package/src/lib/manager/aws/{iamManager.ts → iam-manager.ts} +23 -17
  243. package/src/lib/manager/aws/index.ts +22 -22
  244. package/src/lib/manager/aws/{lambdaManager.ts → lambda-manager.ts} +4 -3
  245. package/src/lib/manager/aws/{logManager.ts → log-manager.ts} +3 -2
  246. package/src/lib/manager/aws/{route53Manager.ts → route53-manager.ts} +4 -3
  247. package/src/lib/manager/aws/{s3Manager.ts → s3-manager.ts} +3 -2
  248. package/src/lib/manager/aws/{secretsManager.ts → secrets-manager.ts} +3 -2
  249. package/src/lib/manager/aws/{snsManager.ts → sns-manager.ts} +3 -2
  250. package/src/lib/manager/aws/{ssmManager.ts → ssm-manager.ts} +6 -9
  251. package/src/lib/manager/aws/{vpcManager.ts → vpc-manager.ts} +8 -5
  252. package/src/lib/manager/aws/{wafManager.ts → waf-manager.ts} +3 -2
  253. package/src/lib/types/aws/index.ts +221 -32
  254. package/src/lib/utils/aws/index.ts +2 -2
  255. package/src/lib/utils/index.ts +8 -8
  256. package/theme/styles.css +113 -0
  257. package/.releaserc +0 -9
  258. package/dist/index.d.ts +0 -6
  259. package/dist/index.d.ts.map +0 -1
  260. package/dist/index.js.map +0 -1
  261. package/dist/src/lib/common/commonConstruct.d.ts +0 -90
  262. package/dist/src/lib/common/commonConstruct.d.ts.map +0 -1
  263. package/dist/src/lib/common/commonConstruct.js +0 -144
  264. package/dist/src/lib/common/commonConstruct.js.map +0 -1
  265. package/dist/src/lib/common/commonStack.d.ts +0 -65
  266. package/dist/src/lib/common/commonStack.d.ts.map +0 -1
  267. package/dist/src/lib/common/commonStack.js +0 -158
  268. package/dist/src/lib/common/commonStack.js.map +0 -1
  269. package/dist/src/lib/common/index.d.ts +0 -3
  270. package/dist/src/lib/common/index.d.ts.map +0 -1
  271. package/dist/src/lib/common/index.js +0 -15
  272. package/dist/src/lib/common/index.js.map +0 -1
  273. package/dist/src/lib/construct/graphQLApiLambda.d.ts +0 -122
  274. package/dist/src/lib/construct/graphQLApiLambda.d.ts.map +0 -1
  275. package/dist/src/lib/construct/graphQLApiLambda.js +0 -211
  276. package/dist/src/lib/construct/graphQLApiLambda.js.map +0 -1
  277. package/dist/src/lib/construct/index.d.ts +0 -4
  278. package/dist/src/lib/construct/index.d.ts.map +0 -1
  279. package/dist/src/lib/construct/index.js +0 -16
  280. package/dist/src/lib/construct/index.js.map +0 -1
  281. package/dist/src/lib/construct/siteWithEcsBackend.d.ts +0 -179
  282. package/dist/src/lib/construct/siteWithEcsBackend.d.ts.map +0 -1
  283. package/dist/src/lib/construct/siteWithEcsBackend.js +0 -339
  284. package/dist/src/lib/construct/siteWithEcsBackend.js.map +0 -1
  285. package/dist/src/lib/construct/staticSite.d.ts +0 -106
  286. package/dist/src/lib/construct/staticSite.d.ts.map +0 -1
  287. package/dist/src/lib/construct/staticSite.js +0 -180
  288. package/dist/src/lib/construct/staticSite.js.map +0 -1
  289. package/dist/src/lib/manager/aws/acmManager.d.ts +0 -46
  290. package/dist/src/lib/manager/aws/acmManager.d.ts.map +0 -1
  291. package/dist/src/lib/manager/aws/acmManager.js +0 -90
  292. package/dist/src/lib/manager/aws/acmManager.js.map +0 -1
  293. package/dist/src/lib/manager/aws/apiManager.d.ts +0 -43
  294. package/dist/src/lib/manager/aws/apiManager.d.ts.map +0 -1
  295. package/dist/src/lib/manager/aws/apiManager.js +0 -111
  296. package/dist/src/lib/manager/aws/apiManager.js.map +0 -1
  297. package/dist/src/lib/manager/aws/appConfigManager.d.ts +0 -64
  298. package/dist/src/lib/manager/aws/appConfigManager.d.ts.map +0 -1
  299. package/dist/src/lib/manager/aws/appConfigManager.js +0 -147
  300. package/dist/src/lib/manager/aws/appConfigManager.js.map +0 -1
  301. package/dist/src/lib/manager/aws/cloudFrontManager.d.ts +0 -112
  302. package/dist/src/lib/manager/aws/cloudFrontManager.d.ts.map +0 -1
  303. package/dist/src/lib/manager/aws/cloudFrontManager.js +0 -282
  304. package/dist/src/lib/manager/aws/cloudFrontManager.js.map +0 -1
  305. package/dist/src/lib/manager/aws/cloudTrailManager.d.ts +0 -48
  306. package/dist/src/lib/manager/aws/cloudTrailManager.d.ts.map +0 -1
  307. package/dist/src/lib/manager/aws/cloudTrailManager.js +0 -99
  308. package/dist/src/lib/manager/aws/cloudTrailManager.js.map +0 -1
  309. package/dist/src/lib/manager/aws/cloudWatchManager.d.ts +0 -121
  310. package/dist/src/lib/manager/aws/cloudWatchManager.d.ts.map +0 -1
  311. package/dist/src/lib/manager/aws/cloudWatchManager.js +0 -351
  312. package/dist/src/lib/manager/aws/cloudWatchManager.js.map +0 -1
  313. package/dist/src/lib/manager/aws/codeBuildManager.d.ts +0 -40
  314. package/dist/src/lib/manager/aws/codeBuildManager.d.ts.map +0 -1
  315. package/dist/src/lib/manager/aws/codeBuildManager.js +0 -94
  316. package/dist/src/lib/manager/aws/codeBuildManager.js.map +0 -1
  317. package/dist/src/lib/manager/aws/dynamodbManager.d.ts +0 -32
  318. package/dist/src/lib/manager/aws/dynamodbManager.d.ts.map +0 -1
  319. package/dist/src/lib/manager/aws/dynamodbManager.js +0 -79
  320. package/dist/src/lib/manager/aws/dynamodbManager.js.map +0 -1
  321. package/dist/src/lib/manager/aws/ecrManager.d.ts +0 -31
  322. package/dist/src/lib/manager/aws/ecrManager.d.ts.map +0 -1
  323. package/dist/src/lib/manager/aws/ecrManager.js +0 -60
  324. package/dist/src/lib/manager/aws/ecrManager.js.map +0 -1
  325. package/dist/src/lib/manager/aws/ecsManager.d.ts +0 -48
  326. package/dist/src/lib/manager/aws/ecsManager.d.ts.map +0 -1
  327. package/dist/src/lib/manager/aws/ecsManager.js +0 -103
  328. package/dist/src/lib/manager/aws/ecsManager.js.map +0 -1
  329. package/dist/src/lib/manager/aws/eksManager.d.ts +0 -36
  330. package/dist/src/lib/manager/aws/eksManager.d.ts.map +0 -1
  331. package/dist/src/lib/manager/aws/eksManager.js +0 -109
  332. package/dist/src/lib/manager/aws/eksManager.js.map +0 -1
  333. package/dist/src/lib/manager/aws/eventManager.d.ts +0 -51
  334. package/dist/src/lib/manager/aws/eventManager.d.ts.map +0 -1
  335. package/dist/src/lib/manager/aws/eventManager.js +0 -120
  336. package/dist/src/lib/manager/aws/eventManager.js.map +0 -1
  337. package/dist/src/lib/manager/aws/iamManager.d.ts +0 -156
  338. package/dist/src/lib/manager/aws/iamManager.d.ts.map +0 -1
  339. package/dist/src/lib/manager/aws/iamManager.js +0 -376
  340. package/dist/src/lib/manager/aws/iamManager.js.map +0 -1
  341. package/dist/src/lib/manager/aws/index.d.ts +0 -23
  342. package/dist/src/lib/manager/aws/index.d.ts.map +0 -1
  343. package/dist/src/lib/manager/aws/index.js +0 -35
  344. package/dist/src/lib/manager/aws/index.js.map +0 -1
  345. package/dist/src/lib/manager/aws/lambdaManager.d.ts +0 -94
  346. package/dist/src/lib/manager/aws/lambdaManager.d.ts.map +0 -1
  347. package/dist/src/lib/manager/aws/lambdaManager.js +0 -196
  348. package/dist/src/lib/manager/aws/lambdaManager.js.map +0 -1
  349. package/dist/src/lib/manager/aws/logManager.d.ts +0 -51
  350. package/dist/src/lib/manager/aws/logManager.d.ts.map +0 -1
  351. package/dist/src/lib/manager/aws/logManager.js +0 -108
  352. package/dist/src/lib/manager/aws/logManager.js.map +0 -1
  353. package/dist/src/lib/manager/aws/route53Manager.d.ts +0 -68
  354. package/dist/src/lib/manager/aws/route53Manager.d.ts.map +0 -1
  355. package/dist/src/lib/manager/aws/route53Manager.js +0 -158
  356. package/dist/src/lib/manager/aws/route53Manager.js.map +0 -1
  357. package/dist/src/lib/manager/aws/s3Manager.d.ts +0 -73
  358. package/dist/src/lib/manager/aws/s3Manager.d.ts.map +0 -1
  359. package/dist/src/lib/manager/aws/s3Manager.js +0 -202
  360. package/dist/src/lib/manager/aws/s3Manager.js.map +0 -1
  361. package/dist/src/lib/manager/aws/secretsManager.d.ts +0 -57
  362. package/dist/src/lib/manager/aws/secretsManager.d.ts.map +0 -1
  363. package/dist/src/lib/manager/aws/secretsManager.js +0 -116
  364. package/dist/src/lib/manager/aws/secretsManager.js.map +0 -1
  365. package/dist/src/lib/manager/aws/snsManager.d.ts +0 -42
  366. package/dist/src/lib/manager/aws/snsManager.d.ts.map +0 -1
  367. package/dist/src/lib/manager/aws/snsManager.js +0 -90
  368. package/dist/src/lib/manager/aws/snsManager.js.map +0 -1
  369. package/dist/src/lib/manager/aws/ssmManager.d.ts +0 -64
  370. package/dist/src/lib/manager/aws/ssmManager.d.ts.map +0 -1
  371. package/dist/src/lib/manager/aws/ssmManager.js +0 -128
  372. package/dist/src/lib/manager/aws/ssmManager.js.map +0 -1
  373. package/dist/src/lib/manager/aws/vpcManager.d.ts +0 -44
  374. package/dist/src/lib/manager/aws/vpcManager.d.ts.map +0 -1
  375. package/dist/src/lib/manager/aws/vpcManager.js +0 -92
  376. package/dist/src/lib/manager/aws/vpcManager.js.map +0 -1
  377. package/dist/src/lib/manager/aws/wafManager.d.ts +0 -39
  378. package/dist/src/lib/manager/aws/wafManager.d.ts.map +0 -1
  379. package/dist/src/lib/manager/aws/wafManager.js +0 -89
  380. package/dist/src/lib/manager/aws/wafManager.js.map +0 -1
  381. package/dist/src/lib/manager/index.d.ts +0 -2
  382. package/dist/src/lib/manager/index.d.ts.map +0 -1
  383. package/dist/src/lib/manager/index.js +0 -14
  384. package/dist/src/lib/manager/index.js.map +0 -1
  385. package/dist/src/lib/types/aws/index.d.ts +0 -294
  386. package/dist/src/lib/types/aws/index.d.ts.map +0 -1
  387. package/dist/src/lib/types/aws/index.js +0 -3
  388. package/dist/src/lib/types/aws/index.js.map +0 -1
  389. package/dist/src/lib/types/index.d.ts +0 -2
  390. package/dist/src/lib/types/index.d.ts.map +0 -1
  391. package/dist/src/lib/types/index.js +0 -14
  392. package/dist/src/lib/types/index.js.map +0 -1
  393. package/dist/src/lib/utils/aws/index.d.ts +0 -16
  394. package/dist/src/lib/utils/aws/index.d.ts.map +0 -1
  395. package/dist/src/lib/utils/aws/index.js +0 -50
  396. package/dist/src/lib/utils/aws/index.js.map +0 -1
  397. package/dist/src/lib/utils/index.d.ts +0 -63
  398. package/dist/src/lib/utils/index.d.ts.map +0 -1
  399. package/dist/src/lib/utils/index.js +0 -85
  400. package/dist/src/lib/utils/index.js.map +0 -1
@@ -0,0 +1,544 @@
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>