WEBVTT

1
00:00:05.615 --> 00:00:07.425
<00:00:05.615>Welcome <00:00:05.965>to <00:00:06.315>the <00:00:06.665>Talk <00:00:07.015>30

2
00:00:07.945 --> 00:00:10.385
<00:00:07.945>powerful <00:00:08.178>AWS <00:00:08.411>Hacks <00:00:08.645>in <00:00:08.878>just <00:00:09.111>30 <00:00:09.345>minutes.

3
00:00:11.045 --> 00:00:12.305
<00:00:11.045>My <00:00:11.328>name <00:00:11.612>is <00:00:11.895>Modu <00:00:12.179>Alvi.

4
00:00:12.365 --> 00:00:15.105
<00:00:12.365>I'm <00:00:12.645>a <00:00:12.925>solutions <00:00:13.205>architect <00:00:13.485>at <00:00:13.765>AWS

5
00:00:15.805 --> 00:00:17.465
<00:00:15.805>and <00:00:16.085>I <00:00:16.364>love <00:00:16.645>to <00:00:16.925>build <00:00:17.205>solutions.

6
00:00:17.845 --> 00:00:19.225
<00:00:17.845>And <00:00:18.155>uh, <00:00:18.466>you <00:00:18.776>are <00:00:19.087>here

7
00:00:19.225 --> 00:00:23.145
<00:00:19.225>because <00:00:19.425>you <00:00:19.625>want <00:00:19.825>to <00:00:20.025>increase <00:00:20.225>your <00:00:20.425>developer <00:00:20.625>productivity

8
00:00:24.015 --> 00:00:26.865
<00:00:24.015>when <00:00:24.365>developing <00:00:24.715>solutions <00:00:25.065>with <00:00:25.415>AWS.

9
00:00:28.645 --> 00:00:30.985
<00:00:28.645>So <00:00:28.925>in <00:00:29.205>the <00:00:29.485>next <00:00:29.765>30 <00:00:30.044>minutes,

10
00:00:31.505 --> 00:00:34.665
<00:00:31.505>I <00:00:31.680>will <00:00:31.855>walk <00:00:32.030>you <00:00:32.205>along <00:00:32.379>the <00:00:32.555>software <00:00:32.729>development <00:00:32.905>lifecycle

11
00:00:34.965 --> 00:00:37.425
<00:00:34.965>and <00:00:35.198>share <00:00:35.431>with <00:00:35.665>you <00:00:35.898>best <00:00:36.131>practices, <00:00:36.365>tips

12
00:00:37.445 --> 00:00:41.145
<00:00:37.445>and <00:00:37.795>tricks, <00:00:38.145>tools, <00:00:38.495>frameworks, <00:00:38.845>libraries,

13
00:00:41.535 --> 00:00:44.065
<00:00:41.535>service <00:00:41.815>features, <00:00:42.095>which <00:00:42.375>you <00:00:42.654>can <00:00:42.934>use

14
00:00:44.285 --> 00:00:46.305
<00:00:44.285>to <00:00:44.635>increase <00:00:44.985>your <00:00:45.334>developer <00:00:45.684>productivity.

15
00:00:48.045 --> 00:00:50.585
<00:00:48.045>But <00:00:48.278>there <00:00:48.511>are <00:00:48.745>actually <00:00:48.978>hundreds <00:00:49.211>of <00:00:49.445>ways

16
00:00:50.725 --> 00:00:52.825
<00:00:50.725>to <00:00:51.005>be <00:00:51.285>smart <00:00:51.565>about <00:00:51.845>AWS, <00:00:52.125>right?

17
00:00:53.525 --> 00:00:55.345
<00:00:53.525>So <00:00:53.875>I <00:00:54.225>picked <00:00:54.574>only <00:00:54.925>30

18
00:00:56.165 --> 00:01:00.225
<00:00:56.165>and <00:00:56.320>they <00:00:56.476>somehow <00:00:56.631>reflect <00:00:56.787>also <00:00:56.942>the <00:00:57.098>theme <00:00:57.253>you <00:00:57.409>will <00:00:57.565>hear

19
00:01:01.085 --> 00:01:03.905
<00:01:01.085>in <00:01:01.365>VR <00:01:01.645>developers <00:01:01.925>conference, <00:01:02.205>which <00:01:02.485>is

20
00:01:04.565 --> 00:01:06.145
<00:01:04.565>agents, <00:01:05.265>agents, <00:01:05.965>agents.

21
00:01:06.765 --> 00:01:09.625
<00:01:06.765>So <00:01:06.940>that's, <00:01:07.115>uh, <00:01:07.290>kind <00:01:07.465>of <00:01:07.640>the <00:01:07.815>choice <00:01:07.990>I <00:01:08.165>made.

22
00:01:09.805 --> 00:01:14.465
<00:01:09.805>So <00:01:09.945>let's <00:01:10.085>get <00:01:10.225>started. <00:01:10.365>So <00:01:10.505>we <00:01:10.645>are <00:01:10.785>in <00:01:10.925>the <00:01:11.065>design <00:01:11.205>phase.

23
00:01:14.645 --> 00:01:18.545
<00:01:14.645>You <00:01:14.800>have <00:01:14.956>understood <00:01:15.111>your <00:01:15.267>use <00:01:15.422>case, <00:01:15.578>you <00:01:15.733>have <00:01:15.889>understood <00:01:16.045>your

24
00:01:19.065 --> 00:01:20.785
<00:01:19.065>functional <00:01:19.531>and <00:01:19.998>non-functional <00:01:20.465>requirements,

25
00:01:21.285 --> 00:01:25.185
<00:01:21.285>and <00:01:21.440>now <00:01:21.596>you <00:01:21.751>want <00:01:21.907>to <00:01:22.062>explore <00:01:22.218>what <00:01:22.373>services <00:01:22.529>AWS <00:01:22.685>have

26
00:01:25.295 --> 00:01:28.025
<00:01:25.295>because <00:01:25.450>you <00:01:25.606>want <00:01:25.761>to <00:01:25.917>build <00:01:26.072>a <00:01:26.228>solution <00:01:26.383>on <00:01:26.539>AWS, <00:01:26.695>right?

27
00:01:28.205 --> 00:01:30.905
<00:01:28.205>So <00:01:28.405>you <00:01:28.605>first <00:01:28.804>go <00:01:29.005>to <00:01:29.205>the <00:01:29.405>AWS <00:01:29.605>documentation

28
00:01:31.005 --> 00:01:32.545
<00:01:31.005>and <00:01:31.203>have <00:01:31.401>a <00:01:31.599>look <00:01:31.797>at <00:01:31.995>the <00:01:32.193>different <00:01:32.391>services,

29
00:01:33.525 --> 00:01:36.745
<00:01:33.525>but <00:01:33.680>this <00:01:33.836>is <00:01:33.991>where <00:01:34.147>you <00:01:34.302>now <00:01:34.458>can <00:01:34.613>use <00:01:34.769>Amazon <00:01:34.925>queue

30
00:01:37.405 --> 00:01:38.905
<00:01:37.405>to <00:01:38.080>ask <00:01:38.755>questions

31
00:01:39.605 --> 00:01:42.265
<00:01:39.604>to <00:01:39.838>the <00:01:40.071>documentations <00:01:40.304>about <00:01:40.538>the <00:01:40.771>different <00:01:41.005>services.

32
00:01:42.765 --> 00:01:46.545
<00:01:42.765>So <00:01:42.881>when <00:01:42.998>you <00:01:43.115>click <00:01:43.231>on <00:01:43.348>that <00:01:43.465>I <00:01:43.581>icon, <00:01:43.698>a <00:01:43.815>new <00:01:43.931>wizard <00:01:44.048>would <00:01:44.165>open

33
00:01:46.965 --> 00:01:51.505
<00:01:46.965>and <00:01:47.120>there <00:01:47.276>you <00:01:47.431>can <00:01:47.587>ask <00:01:47.742>questions <00:01:47.898>to <00:01:48.053>Amazon <00:01:48.209>queue, <00:01:48.365>like

34
00:01:52.055 --> 00:01:55.265
<00:01:52.055>when <00:01:52.288>to <00:01:52.521>use <00:01:52.755>AWS <00:01:52.988>Lambda <00:01:53.221>Snap <00:01:53.455>Start

35
00:01:56.245 --> 00:02:00.065
<00:01:56.245>and <00:01:56.400>it'll <00:01:56.556>give <00:01:56.711>you <00:01:56.867>a <00:01:57.022>comprehensive <00:01:57.178>answer <00:01:57.333>to <00:01:57.489>your <00:01:57.645>question

36
00:02:00.725 --> 00:02:03.985
<00:02:00.725>and <00:02:00.899>also <00:02:01.074>provide <00:02:01.250>you, <00:02:01.425>uh, <00:02:01.600>when <00:02:01.774>to <00:02:01.949>use <00:02:02.125>this,

37
00:02:04.055 --> 00:02:05.265
<00:02:04.055>when <00:02:04.327>to <00:02:04.599>not <00:02:04.871>use <00:02:05.144>it.

38
00:02:05.605 --> 00:02:09.145
<00:02:05.605>And <00:02:05.760>also, <00:02:05.916>um, <00:02:06.071>what <00:02:06.227>are <00:02:06.382>the <00:02:06.538>supported <00:02:06.693>runtimes, <00:02:06.849>for <00:02:07.005>example?

39
00:02:11.205 --> 00:02:13.345
<00:02:11.205>Now <00:02:11.438>we <00:02:11.671>have <00:02:11.905>understood <00:02:12.138>the <00:02:12.371>services, <00:02:12.605>right?

40
00:02:13.565 --> 00:02:14.785
<00:02:13.565>But <00:02:13.784>we <00:02:14.004>also <00:02:14.223>want <00:02:14.443>to <00:02:14.663>do

41
00:02:14.785 --> 00:02:17.625
<00:02:14.785>that <00:02:14.984>let's <00:02:15.185>say <00:02:15.385>from <00:02:15.585>your <00:02:15.785>local <00:02:15.984>machine, <00:02:16.185>right?

42
00:02:17.885 --> 00:02:22.265
<00:02:17.885>So <00:02:18.024>that's <00:02:18.165>where <00:02:18.304>you <00:02:18.445>can <00:02:18.584>use <00:02:18.725>any <00:02:18.864>host <00:02:19.005>which <00:02:19.144>supports <00:02:19.285>MCP

43
00:02:22.685 --> 00:02:25.745
<00:02:22.685>and <00:02:22.918>use <00:02:23.151>the <00:02:23.385>AWS <00:02:23.618>documentation <00:02:23.851>MCP <00:02:24.085>server.

44
00:02:26.325 --> 00:02:30.065
<00:02:26.325>So <00:02:26.480>here <00:02:26.636>as <00:02:26.791>an <00:02:26.947>example, <00:02:27.102>I'm <00:02:27.258>using <00:02:27.413>Amazon <00:02:27.569>q <00:02:27.725>developer,

45
00:02:30.225 --> 00:02:33.705
<00:02:30.225>CLII <00:02:30.575>have <00:02:30.924>configured <00:02:31.275>the <00:02:31.625>AWS

46
00:02:33.865 --> 00:02:35.665
<00:02:33.865>documentation <00:02:34.565>MCP <00:02:35.265>server.

47
00:02:36.205 --> 00:02:40.625
<00:02:36.204>And <00:02:36.332>then <00:02:36.459>just <00:02:36.586>ask <00:02:36.714>my <00:02:36.841>question <00:02:36.968>in <00:02:37.095>my <00:02:37.223>CLI, <00:02:37.350>you <00:02:37.477>can <00:02:37.605>do.

48
00:02:40.645 --> 00:02:44.145
<00:02:40.645>So <00:02:40.745>also <00:02:40.845>with <00:02:40.945>copilot <00:02:41.045>you <00:02:41.145>can <00:02:41.245>do <00:02:41.345>it <00:02:41.445>in <00:02:41.545>VS <00:02:41.645>code, <00:02:41.745>you <00:02:41.845>can <00:02:41.945>do <00:02:42.045>it

49
00:02:44.145 --> 00:02:47.745
<00:02:44.145>with <00:02:44.345>cloud, <00:02:44.545>desktop, <00:02:44.745>whatever <00:02:44.945>host <00:02:45.145>is <00:02:45.345>supporting <00:02:45.545>MCP,

50
00:02:47.805 --> 00:02:50.545
<00:02:47.805>you <00:02:48.038>can <00:02:48.271>have <00:02:48.505>your <00:02:48.738>MCP <00:02:48.971>server <00:02:49.205>configured

51
00:02:50.545 --> 00:02:52.265
<00:02:50.545>and <00:02:50.825>ask <00:02:51.105>questions <00:02:51.385>on <00:02:51.665>an <00:02:51.945>AWS.

52
00:02:52.365 --> 00:02:56.145
<00:02:52.365>And <00:02:52.492>here <00:02:52.619>the <00:02:52.746>very <00:02:52.874>same <00:02:53.001>question, <00:02:53.128>we <00:02:53.255>get <00:02:53.383>an <00:02:53.510>answer <00:02:53.637>on <00:02:53.765>when

53
00:02:56.145 --> 00:02:58.665
<00:02:56.145>to <00:02:56.285>use <00:02:56.425>Snap <00:02:56.565>Start <00:02:56.705>and <00:02:56.845>when <00:02:56.985>not <00:02:57.125>to <00:02:57.265>use <00:02:57.405>Snap <00:02:57.545>Start.

54
00:03:00.475 --> 00:03:02.565
<00:03:00.475>Alright, <00:03:00.708>we <00:03:00.941>have <00:03:01.174>a <00:03:01.408>high <00:03:01.641>level <00:03:01.875>understanding

55
00:03:02.565 --> 00:03:04.005
<00:03:02.565>of <00:03:02.781>the <00:03:02.997>services <00:03:03.213>we <00:03:03.429>want <00:03:03.644>to <00:03:03.861>use.

56
00:03:04.345 --> 00:03:07.245
<00:03:04.345>Now <00:03:04.545>we <00:03:04.745>would <00:03:04.945>like <00:03:05.145>to <00:03:05.345>create <00:03:05.545>an <00:03:05.745>architecture

57
00:03:07.245 --> 00:03:09.565
<00:03:07.245>and <00:03:07.525>architecture <00:03:07.805>diagram <00:03:08.085>of <00:03:08.365>our <00:03:08.645>solution

58
00:03:09.825 --> 00:03:13.405
<00:03:09.825>and <00:03:09.964>that's <00:03:10.105>where <00:03:10.244>we <00:03:10.385>can <00:03:10.524>use <00:03:10.665>the <00:03:10.804>AWS <00:03:10.945>diagram, <00:03:11.084>MCP <00:03:11.225>server.

59
00:03:13.615 --> 00:03:15.645
<00:03:13.615>Again, <00:03:13.895>something <00:03:14.175>you <00:03:14.455>can <00:03:14.735>configure <00:03:15.015>easily.

60
00:03:16.235 --> 00:03:18.885
<00:03:16.235>It's <00:03:16.468>just <00:03:16.701>a <00:03:16.935>matter <00:03:17.168>of <00:03:17.401>a <00:03:17.635>minute.

61
00:03:19.105 --> 00:03:22.245
<00:03:19.105>And <00:03:19.244>then <00:03:19.385>you <00:03:19.524>can <00:03:19.665>start <00:03:19.804>right <00:03:19.945>away, <00:03:20.084>explain <00:03:20.225>what <00:03:20.364>you <00:03:20.505>want

62
00:03:22.245 --> 00:03:24.525
<00:03:22.245>to <00:03:22.478>build, <00:03:22.711>the <00:03:22.945>use <00:03:23.178>case, <00:03:23.411>the <00:03:23.645>solution,

63
00:03:24.825 --> 00:03:26.405
<00:03:24.825>the <00:03:25.058>components <00:03:25.291>you <00:03:25.524>may <00:03:25.758>want <00:03:25.991>to <00:03:26.225>use.

64
00:03:26.745 --> 00:03:30.285
<00:03:26.745>And <00:03:26.945>then <00:03:27.145>the <00:03:27.345>diagram <00:03:27.545>MCP <00:03:27.745>server <00:03:27.945>will <00:03:28.145>take

65
00:03:30.755 --> 00:03:34.405
<00:03:30.755>what <00:03:30.910>is <00:03:31.066>guarding <00:03:31.221>from <00:03:31.377>the <00:03:31.532>different <00:03:31.688>services <00:03:31.843>gets <00:03:31.999>the <00:03:32.155>icons

66
00:03:34.515 --> 00:03:38.005
<00:03:34.515>gets <00:03:34.864>um, <00:03:35.214>the <00:03:35.565>diagram <00:03:35.915>composed

67
00:03:38.545 --> 00:03:42.525
<00:03:38.545>and <00:03:38.672>you <00:03:38.799>get <00:03:38.926>a <00:03:39.054>final <00:03:39.181>diagram <00:03:39.308>which <00:03:39.435>you <00:03:39.563>can <00:03:39.690>use <00:03:39.817>in <00:03:39.945>your

68
00:03:42.725 --> 00:03:46.565
<00:03:42.725>documentation, <00:03:42.864>but <00:03:43.005>it's <00:03:43.144>not <00:03:43.285>only <00:03:43.424>a <00:03:43.565>p <00:03:43.704>and <00:03:43.845>g <00:03:43.984>or <00:03:44.125>image,

69
00:03:46.745 --> 00:03:50.565
<00:03:46.745>but <00:03:46.872>you <00:03:46.999>also <00:03:47.126>get <00:03:47.254>the <00:03:47.381>code <00:03:47.508>which <00:03:47.635>creates <00:03:47.763>you <00:03:47.890>this <00:03:48.017>diagram <00:03:48.145>at

70
00:03:50.565 --> 00:03:52.885
<00:03:50.565>the <00:03:50.740>end <00:03:50.915>of <00:03:51.090>the <00:03:51.265>day, <00:03:51.440>it's <00:03:51.615>uh, <00:03:51.790>a <00:03:51.965>library,

71
00:03:52.885 --> 00:03:55.045
<00:03:52.885>which <00:03:53.165>is <00:03:53.445>diagrams <00:03:53.725>library <00:03:54.005>from <00:03:54.285>Python

72
00:03:55.385 --> 00:03:57.125
<00:03:55.385>and <00:03:55.560>you <00:03:55.734>get <00:03:55.910>the <00:03:56.084>Python <00:03:56.260>code <00:03:56.435>along <00:03:56.609>with <00:03:56.785>that

73
00:03:57.425 --> 00:03:59.725
<00:03:57.425>and <00:03:57.600>you <00:03:57.775>can <00:03:57.950>adapt <00:03:58.125>that <00:03:58.300>code <00:03:58.475>as <00:03:58.650>you <00:03:58.825>progress

74
00:03:59.725 --> 00:04:00.965
<00:03:59.725>with <00:04:00.283>your <00:04:00.841>solution.

75
00:04:02.995 --> 00:04:07.165
<00:04:02.995>Alright? <00:04:03.170>Now <00:04:03.345>we <00:04:03.520>have <00:04:03.695>an <00:04:03.870>understanding <00:04:04.045>of <00:04:04.220>our <00:04:04.395>architecture

76
00:04:07.385 --> 00:04:08.685
<00:04:07.385>and <00:04:07.775>our <00:04:08.165>use <00:04:08.555>case

77
00:04:08.825 --> 00:04:11.085
<00:04:08.825>and <00:04:09.024>we <00:04:09.225>want <00:04:09.424>to <00:04:09.625>also <00:04:09.825>have <00:04:10.024>an <00:04:10.225>understanding

78
00:04:11.435 --> 00:04:14.445
<00:04:11.435>what <00:04:11.635>are <00:04:11.835>the <00:04:12.035>costs <00:04:12.235>implication <00:04:12.435>if <00:04:12.635>I <00:04:12.835>deploy

79
00:04:14.445 --> 00:04:16.165
<00:04:14.445>that <00:04:14.911>solution <00:04:15.378>to <00:04:15.845>AWS.

80
00:04:16.425 --> 00:04:19.965
<00:04:16.425>And <00:04:16.580>that's <00:04:16.736>where <00:04:16.891>you <00:04:17.047>can <00:04:17.202>use <00:04:17.358>the <00:04:17.513>AWS <00:04:17.669>cost <00:04:17.825>analysis

81
00:04:20.565 --> 00:04:24.525
<00:04:20.565>MCP <00:04:20.704>server <00:04:20.844>and <00:04:20.985>just <00:04:21.125>ask <00:04:21.265>what <00:04:21.404>would <00:04:21.545>be <00:04:21.685>the <00:04:21.825>cost <00:04:21.964>of

82
00:04:24.555 --> 00:04:26.085
<00:04:24.555>that <00:04:25.014>kind <00:04:25.473>of <00:04:25.931>application.

83
00:04:26.305 --> 00:04:27.965
<00:04:26.305>So <00:04:26.655>you <00:04:27.005>described <00:04:27.355>your <00:04:27.705>application,

84
00:04:28.075 --> 00:04:30.445
<00:04:28.075>what <00:04:28.308>different <00:04:28.541>services <00:04:28.775>you <00:04:29.008>want <00:04:29.241>to <00:04:29.474>use,

85
00:04:30.495 --> 00:04:32.405
<00:04:30.495>maybe <00:04:30.845>also <00:04:31.195>some <00:04:31.545>usage <00:04:31.895>patterns,

86
00:04:32.665 --> 00:04:34.885
<00:04:32.665>how <00:04:32.865>many <00:04:33.065>users <00:04:33.265>you're <00:04:33.465>expecting <00:04:33.665>and <00:04:33.865>so <00:04:34.065>on.

87
00:04:35.265 --> 00:04:39.125
<00:04:35.265>And <00:04:35.392>it <00:04:35.519>will <00:04:35.646>give <00:04:35.774>you <00:04:35.901>a <00:04:36.028>high <00:04:36.155>level <00:04:36.283>estimate <00:04:36.410>of <00:04:36.537>your <00:04:36.664>costs.

88
00:04:39.345 --> 00:04:42.645
<00:04:39.345>And <00:04:39.500>by <00:04:39.656>this <00:04:39.811>it <00:04:39.967>is <00:04:40.122>calling <00:04:40.278>the <00:04:40.433>AWS <00:04:40.589>pricing <00:04:40.745>API.

89
00:04:42.895 --> 00:04:45.845
<00:04:42.895>It'll <00:04:43.070>get <00:04:43.245>the <00:04:43.419>current <00:04:43.594>prices <00:04:43.770>of <00:04:43.945>the <00:04:44.120>different <00:04:44.294>services

90
00:04:46.305 --> 00:04:49.925
<00:04:46.305>and <00:04:46.480>then <00:04:46.655>compose <00:04:46.830>you <00:04:47.005>for <00:04:47.180>you, <00:04:47.355>uh, <00:04:47.530>cost <00:04:47.705>report

91
00:04:50.465 --> 00:04:51.605
<00:04:50.465>in <00:04:50.978>different <00:04:51.491>formats.

92
00:04:51.625 --> 00:04:53.565
<00:04:51.625>It <00:04:51.825>could <00:04:52.025>be <00:04:52.225>Jason, <00:04:52.425>it <00:04:52.625>could <00:04:52.825>be <00:04:53.025>markdown.

93
00:04:53.875 --> 00:04:57.485
<00:04:53.875>Here <00:04:54.075>I'm <00:04:54.275>asking <00:04:54.475>to <00:04:54.675>create <00:04:54.875>an <00:04:55.075>HTML <00:04:55.275>form,

94
00:04:57.855 --> 00:05:00.325
<00:04:57.855>which <00:04:58.010>gives <00:04:58.166>you <00:04:58.321>a <00:04:58.477>high <00:04:58.632>level <00:04:58.788>breakdown <00:04:58.943>of <00:04:59.099>the <00:04:59.255>cost

95
00:05:00.345 --> 00:05:01.525
<00:05:00.345>of <00:05:00.876>your <00:05:01.407>application.

96
00:05:01.905 --> 00:05:03.245
<00:05:01.905>So <00:05:02.106>this <00:05:02.306>is <00:05:02.508>how <00:05:02.709>it <00:05:02.909>looks <00:05:03.111>like.

97
00:05:03.555 --> 00:05:04.805
<00:05:03.555>It's <00:05:03.780>not <00:05:04.005>super <00:05:04.230>fancy <00:05:04.455>and <00:05:04.680>nice,

98
00:05:04.805 --> 00:05:08.445
<00:05:04.805>but <00:05:04.960>it's <00:05:05.116>still <00:05:05.271>gives <00:05:05.427>you <00:05:05.582>somehow <00:05:05.738>what <00:05:05.893>the <00:05:06.049>estimated <00:05:06.205>cost

99
00:05:08.445 --> 00:05:10.645
<00:05:08.445>of <00:05:08.795>your <00:05:09.145>solution <00:05:09.495>would <00:05:09.844>be

100
00:05:10.825 --> 00:05:12.965
<00:05:10.825>before <00:05:11.104>you <00:05:11.385>actually <00:05:11.664>deploy <00:05:11.945>them, <00:05:12.224>right?

101
00:05:13.345 --> 00:05:15.685
<00:05:13.345>So <00:05:13.520>this <00:05:13.695>is <00:05:13.870>just <00:05:14.045>in <00:05:14.220>hot <00:05:14.395>tml <00:05:14.570>uh, <00:05:14.745>export.

102
00:05:15.705 --> 00:05:19.885
<00:05:15.705>But <00:05:15.832>as <00:05:15.959>said, <00:05:16.086>you <00:05:16.214>can <00:05:16.341>have <00:05:16.468>the <00:05:16.595>report <00:05:16.723>in <00:05:16.850>JS <00:05:16.977>or <00:05:17.104>markdown

103
00:05:20.025 --> 00:05:21.525
<00:05:20.025>and <00:05:20.362>process <00:05:20.700>it <00:05:21.037>also <00:05:21.375>further.

104
00:05:23.755 --> 00:05:26.605
<00:05:23.755>Alright, <00:05:24.034>when <00:05:24.315>come, <00:05:24.594>when <00:05:24.875>it <00:05:25.155>comes

105
00:05:26.605 --> 00:05:29.565
<00:05:26.605>to <00:05:26.805>building <00:05:27.005>solutions <00:05:27.205>on <00:05:27.405>AWS, <00:05:27.605>it's <00:05:27.805>also <00:05:28.005>important

106
00:05:29.665 --> 00:05:32.045
<00:05:29.665>to <00:05:29.945>understand <00:05:30.225>what <00:05:30.505>are <00:05:30.785>the <00:05:31.065>limitations

107
00:05:32.145 --> 00:05:34.205
<00:05:32.145>of <00:05:32.378>the <00:05:32.611>services <00:05:32.844>you <00:05:33.078>are <00:05:33.311>using, <00:05:33.544>right?

108
00:05:34.275 --> 00:05:37.605
<00:05:34.275>Because <00:05:34.474>that <00:05:34.674>may <00:05:34.875>have <00:05:35.075>an <00:05:35.275>influence <00:05:35.474>on <00:05:35.674>your

109
00:05:37.605 --> 00:05:38.685
<00:05:37.605>architecture, <00:05:38.577>right?

110
00:05:38.985 --> 00:05:42.045
<00:05:38.985>For <00:05:39.125>that, <00:05:39.265>it's <00:05:39.405>good <00:05:39.545>to <00:05:39.685>know <00:05:39.825>what <00:05:39.965>are <00:05:40.105>the <00:05:40.245>service <00:05:40.385>limitations

111
00:05:42.045 --> 00:05:43.125
<00:05:42.045>that <00:05:42.369>quotas <00:05:42.693>in <00:05:43.017>place.

112
00:05:43.185 --> 00:05:45.045
<00:05:43.185>And <00:05:43.418>there <00:05:43.651>we <00:05:43.885>have <00:05:44.118>the <00:05:44.351>service <00:05:44.585>quota.

113
00:05:45.365 --> 00:05:49.845
<00:05:45.365>API <00:05:45.505>the <00:05:45.645>first <00:05:45.785>command <00:05:45.925>is <00:05:46.065>get <00:05:46.205>me <00:05:46.345>all <00:05:46.485>the <00:05:46.625>service <00:05:46.765>quarter

114
00:05:50.065 --> 00:05:53.645
<00:05:50.065>of <00:05:50.344>AWS <00:05:50.625>lamb <00:05:50.905>within <00:05:51.185>your <00:05:51.465>account.

115
00:05:53.785 --> 00:05:56.965
<00:05:53.784>So <00:05:53.960>it's <00:05:54.135>not <00:05:54.309>a <00:05:54.484>general <00:05:54.659>quarter, <00:05:54.835>it's <00:05:55.010>the <00:05:55.184>quarter

116
00:05:57.265 --> 00:06:00.165
<00:05:57.265>of <00:05:57.420>your <00:05:57.576>account <00:05:57.731>where <00:05:57.887>you <00:05:58.042>want <00:05:58.198>to <00:05:58.353>deploy <00:05:58.509>your <00:05:58.664>API

117
00:06:01.865 --> 00:06:05.525
<00:06:01.865>and <00:06:02.020>then <00:06:02.176>you <00:06:02.331>can <00:06:02.487>also <00:06:02.642>increase <00:06:02.798>the <00:06:02.953>service <00:06:03.109>quota, <00:06:03.265>um,

118
00:06:05.945 --> 00:06:07.125
<00:06:05.945>by <00:06:06.299>an <00:06:06.653>API <00:06:07.007>call.

119
00:06:07.505 --> 00:06:10.005
<00:06:07.505>So <00:06:07.660>that's <00:06:07.816>very <00:06:07.971>neat <00:06:08.127>to <00:06:08.282>know <00:06:08.438>what <00:06:08.593>are <00:06:08.749>the <00:06:08.905>limitations

120
00:06:10.005 --> 00:06:11.205
<00:06:10.005>of <00:06:10.185>the <00:06:10.365>services <00:06:10.545>I <00:06:10.724>want <00:06:10.905>to <00:06:11.085>use.

121
00:06:11.835 --> 00:06:15.165
<00:06:11.835>Next <00:06:12.010>we <00:06:12.185>have <00:06:12.359>a <00:06:12.534>architecture, <00:06:12.710>we <00:06:12.885>have <00:06:13.060>the <00:06:13.234>understanding

122
00:06:15.165 --> 00:06:16.805
<00:06:15.165>of <00:06:15.445>the <00:06:15.725>requirements <00:06:16.005>and <00:06:16.285>the <00:06:16.565>limitations.

123
00:06:17.025 --> 00:06:20.045
<00:06:17.025>Now <00:06:17.200>we <00:06:17.375>actually <00:06:17.549>want <00:06:17.724>to <00:06:17.900>code, <00:06:18.075>uh, <00:06:18.250>our <00:06:18.424>solution.

124
00:06:20.425 --> 00:06:23.165
<00:06:20.425>That's <00:06:20.600>where <00:06:20.775>we <00:06:20.950>can <00:06:21.125>go <00:06:21.300>to <00:06:21.475>Amazon <00:06:21.650>queue <00:06:21.825>developer,

125
00:06:23.165 --> 00:06:26.205
<00:06:23.165>there's <00:06:23.365>a <00:06:23.565>VS <00:06:23.765>code <00:06:23.965>extension <00:06:24.165>you <00:06:24.365>can <00:06:24.565>use

126
00:06:26.745 --> 00:06:30.085
<00:06:26.745>and <00:06:26.885>just <00:06:27.025>prompt <00:06:27.165>it <00:06:27.305>with <00:06:27.445>the <00:06:27.585>solution <00:06:27.725>you <00:06:27.865>want <00:06:28.005>to <00:06:28.145>build.

127
00:06:30.625 --> 00:06:33.285
<00:06:30.625>And <00:06:30.858>uh, <00:06:31.091>Amazon <00:06:31.325>Q <00:06:31.558>developer <00:06:31.791>will <00:06:32.025>create

128
00:06:33.345 --> 00:06:34.565
<00:06:33.345>you <00:06:33.711>the <00:06:34.077>project <00:06:34.443>repository.

129
00:06:34.735 --> 00:06:37.445
<00:06:34.735>It'll <00:06:34.935>create <00:06:35.135>your <00:06:35.335>infrastructure <00:06:35.535>as <00:06:35.735>code <00:06:35.935>if <00:06:36.135>required.

130
00:06:37.775 --> 00:06:40.165
<00:06:37.775>It'll <00:06:37.930>create <00:06:38.086>you <00:06:38.241>the <00:06:38.397>backend, <00:06:38.552>the <00:06:38.708>front <00:06:38.863>end, <00:06:39.019>the <00:06:39.174>ui,

131
00:06:40.255 --> 00:06:44.165
<00:06:40.255>everything <00:06:40.430>which <00:06:40.605>is <00:06:40.780>needed <00:06:40.955>to <00:06:41.130>have <00:06:41.305>your <00:06:41.480>solution <00:06:41.655>built.

132
00:06:46.865 --> 00:06:49.875
<00:06:46.865>Alright, <00:06:47.040>so <00:06:47.215>we <00:06:47.390>have <00:06:47.565>bootstrapped <00:06:47.740>our <00:06:47.915>project, <00:06:48.090>it's <00:06:48.265>deployed,

133
00:06:49.875 --> 00:06:53.875
<00:06:49.875>it's <00:06:50.015>working, <00:06:50.155>but <00:06:50.295>we <00:06:50.435>of <00:06:50.575>course <00:06:50.715>wants <00:06:50.855>to <00:06:50.995>develop <00:06:51.135>it <00:06:51.275>further.

134
00:06:53.885 --> 00:06:57.755
<00:06:53.885>Right <00:06:54.012>now <00:06:54.139>we <00:06:54.266>are <00:06:54.394>in <00:06:54.521>iteration <00:06:54.648>mode. <00:06:54.775>We <00:06:54.903>are <00:06:55.030>in <00:06:55.157>our <00:06:55.284>sprints.

135
00:06:57.755 --> 00:06:59.235
<00:06:57.755>We <00:06:58.021>want <00:06:58.287>to <00:06:58.554>develop <00:06:58.820>new <00:06:59.087>features.

136
00:07:00.015 --> 00:07:03.155
<00:07:00.015>So <00:07:00.190>here <00:07:00.365>you <00:07:00.539>can <00:07:00.715>use <00:07:00.890>the <00:07:01.065>feature <00:07:01.240>development <00:07:01.414>functionality

137
00:07:03.155 --> 00:07:04.435
<00:07:03.155>of <00:07:03.731>MSNQ <00:07:04.307>developer,

138
00:07:04.615 --> 00:07:06.875
<00:07:04.615>but <00:07:04.815>you <00:07:05.015>just <00:07:05.215>mentioned <00:07:05.415>this <00:07:05.615>is <00:07:05.815>my <00:07:06.015>project,

139
00:07:07.345 --> 00:07:09.475
<00:07:07.345>this <00:07:07.545>is <00:07:07.745>all <00:07:07.945>the, <00:07:08.145>the <00:07:08.345>files <00:07:08.545>I <00:07:08.745>have.

140
00:07:10.075 --> 00:07:13.715
<00:07:10.075>I <00:07:10.250>want <00:07:10.425>to <00:07:10.599>add <00:07:10.775>this <00:07:10.950>button <00:07:11.125>or <00:07:11.300>that <00:07:11.474>functionality.

141
00:07:14.215 --> 00:07:17.435
<00:07:14.215>And <00:07:14.390>it'll <00:07:14.565>change <00:07:14.739>not <00:07:14.914>only <00:07:15.090>the <00:07:15.265>backend, <00:07:15.440>the <00:07:15.614>database,

142
00:07:17.655 --> 00:07:20.115
<00:07:17.655>the <00:07:17.854>Lambda <00:07:18.054>functions, <00:07:18.255>but <00:07:18.455>also <00:07:18.655>the <00:07:18.854>front <00:07:19.054>end

143
00:07:20.495 --> 00:07:23.755
<00:07:20.495>and <00:07:20.695>have <00:07:20.895>a <00:07:21.095>end-to-end <00:07:21.295>implementation <00:07:21.495>of <00:07:21.695>your <00:07:21.895>feature.

144
00:07:29.235 --> 00:07:32.445
<00:07:29.235>Okay? <00:07:29.468>Now <00:07:29.701>let's <00:07:29.935>take <00:07:30.168>a <00:07:30.401>step <00:07:30.635>back.

145
00:07:32.955 --> 00:07:34.925
<00:07:32.955>Sometimes <00:07:33.305>you <00:07:33.655>don't <00:07:34.005>want <00:07:34.354>to

146
00:07:35.435 --> 00:07:37.205
<00:07:35.435>develop <00:07:35.901>something <00:07:36.368>completely <00:07:36.835>new,

147
00:07:37.705 --> 00:07:41.845
<00:07:37.705>but <00:07:37.844>you <00:07:37.984>already <00:07:38.125>have <00:07:38.265>an <00:07:38.405>application <00:07:38.544>which <00:07:38.685>you <00:07:38.825>wants <00:07:38.965>to, <00:07:39.104>uh,

148
00:07:42.065 --> 00:07:43.565
<00:07:42.065>deploy <00:07:42.740>on <00:07:43.415>AWS

149
00:07:43.665 --> 00:07:47.165
<00:07:43.665>and <00:07:43.805>there <00:07:43.945>are <00:07:44.085>hundreds <00:07:44.225>of <00:07:44.365>ways <00:07:44.505>to <00:07:44.645>deploy <00:07:44.785>applications <00:07:44.925>on <00:07:45.065>AWS

150
00:07:48.065 --> 00:07:51.045
<00:07:48.065>uh, <00:07:48.344>containerize <00:07:48.625>it, <00:07:48.905>use <00:07:49.185>Docker, <00:07:49.465>whatnot.

151
00:07:51.745 --> 00:07:54.245
<00:07:51.745>But <00:07:51.945>one <00:07:52.145>of <00:07:52.345>them <00:07:52.545>is <00:07:52.745>using <00:07:52.945>AWS <00:07:53.145>Lambda.

152
00:07:54.465 --> 00:07:56.725
<00:07:54.465>So <00:07:54.665>let's <00:07:54.865>suppose <00:07:55.065>you <00:07:55.265>have <00:07:55.465>already <00:07:55.665>an <00:07:55.865>application,

153
00:07:56.755 --> 00:08:00.605
<00:07:56.755>like <00:07:56.930>a <00:07:57.105>Spring <00:07:57.280>Boot <00:07:57.455>application, <00:07:57.630>express <00:07:57.805>flask <00:07:57.980>fast, <00:07:58.155>API,

154
00:08:01.005 --> 00:08:03.005
<00:08:01.005>whatever <00:08:01.180>you <00:08:01.355>want <00:08:01.530>to <00:08:01.705>take <00:08:01.880>as <00:08:02.055>a <00:08:02.230>web <00:08:02.405>app.

155
00:08:03.305 --> 00:08:04.365
<00:08:03.305>You <00:08:03.623>can <00:08:03.941>actually <00:08:04.259>run

156
00:08:04.365 --> 00:08:07.285
<00:08:04.365>that <00:08:04.565>in <00:08:04.765>an <00:08:04.965>AWS <00:08:05.165>Lambda <00:08:05.365>function <00:08:05.565>for <00:08:05.765>that.

157
00:08:07.415 --> 00:08:10.005
<00:08:07.415>There <00:08:07.648>is <00:08:07.881>an <00:08:08.115>AWS <00:08:08.348>Lambda <00:08:08.581>web <00:08:08.815>Adapter,

158
00:08:10.255 --> 00:08:13.405
<00:08:10.255>which <00:08:10.410>runs <00:08:10.566>your <00:08:10.721>application <00:08:10.877>in <00:08:11.032>a <00:08:11.188>lambda <00:08:11.343>function <00:08:11.499>in <00:08:11.655>the

159
00:08:13.405 --> 00:08:14.845
<00:08:13.405>backend <00:08:13.837>on <00:08:14.269>local <00:08:14.701>host.

160
00:08:15.585 --> 00:08:17.565
<00:08:15.585>And <00:08:15.864>it <00:08:16.145>provides <00:08:16.424>you <00:08:16.705>an <00:08:16.984>adapter,

161
00:08:17.575 --> 00:08:19.245
<00:08:17.575>which <00:08:17.925>takes <00:08:18.275>the <00:08:18.625>different <00:08:18.974>events.

162
00:08:19.345 --> 00:08:23.205
<00:08:19.345>The <00:08:19.485>Lambda <00:08:19.625>has <00:08:19.765>been <00:08:19.905>called <00:08:20.045>like <00:08:20.185>let's <00:08:20.325>say <00:08:20.465>an <00:08:20.605>API <00:08:20.745>gateway

163
00:08:23.255 --> 00:08:27.005
<00:08:23.255>event <00:08:23.455>and <00:08:23.655>translates <00:08:23.855>it <00:08:24.055>to <00:08:24.255>the <00:08:24.455>TP <00:08:24.655>request

164
00:08:27.985 --> 00:08:31.925
<00:08:27.985>for <00:08:28.185>your <00:08:28.385>application <00:08:28.585>and <00:08:28.785>also <00:08:28.985>translates <00:08:29.185>it <00:08:29.385>back.

165
00:08:31.945 --> 00:08:33.605
<00:08:31.945>And <00:08:32.294>it's <00:08:32.645>all <00:08:32.995>done <00:08:33.345>automatically.

166
00:08:33.905 --> 00:08:36.605
<00:08:33.905>You <00:08:34.079>just <00:08:34.255>configure <00:08:34.429>this <00:08:34.605>is <00:08:34.780>my <00:08:34.954>spring <00:08:35.130>boot <00:08:35.304>application

167
00:08:37.065 --> 00:08:38.205
<00:08:37.065>and <00:08:37.407>then <00:08:37.749>hit <00:08:38.091>deploy

168
00:08:38.265 --> 00:08:40.605
<00:08:38.265>and <00:08:38.465>it's <00:08:38.664>running <00:08:38.865>in <00:08:39.064>in <00:08:39.265>your <00:08:39.465>Lambda <00:08:39.664>function.

169
00:08:44.635 --> 00:08:47.575
<00:08:44.635>Now <00:08:44.915>we <00:08:45.194>have <00:08:45.475>our, <00:08:45.755>uh, <00:08:46.035>function,

170
00:08:47.635 --> 00:08:49.655
<00:08:47.635>we <00:08:47.868>have <00:08:48.101>our <00:08:48.335>solution <00:08:48.568>deployed, <00:08:48.801>it's <00:08:49.035>working,

171
00:08:49.915 --> 00:08:52.615
<00:08:49.915>but <00:08:50.070>we <00:08:50.226>also <00:08:50.381>want <00:08:50.537>to <00:08:50.692>take <00:08:50.848>care <00:08:51.003>of <00:08:51.159>security, <00:08:51.314>right?

172
00:08:52.675 --> 00:08:55.270
<00:08:52.675>And <00:08:52.814>security <00:08:52.954>shouldn't <00:08:53.094>be <00:08:53.234>something <00:08:53.375>we <00:08:53.515>do <00:08:53.655>at <00:08:53.795>the <00:08:53.935>end <00:08:54.074>end

173
00:08:55.375 --> 00:08:57.285
<00:08:55.375>where <00:08:55.608>we <00:08:55.841>do <00:08:56.075>some <00:08:56.308>pen <00:08:56.541>tests, <00:08:56.775>uh,

174
00:08:57.395 --> 00:08:59.005
<00:08:57.395>when <00:08:57.745>we <00:08:58.095>have <00:08:58.444>developer <00:08:58.795>solution,

175
00:08:59.265 --> 00:09:02.245
<00:08:59.265>but <00:08:59.392>we <00:08:59.519>want <00:08:59.646>to <00:08:59.774>bake <00:08:59.901>it <00:09:00.028>in <00:09:00.155>from <00:09:00.283>the <00:09:00.410>very <00:09:00.537>first <00:09:00.665>beginning.

176
00:09:02.545 --> 00:09:06.245
<00:09:02.545>And <00:09:02.672>for <00:09:02.799>that <00:09:02.926>you <00:09:03.054>can <00:09:03.181>have <00:09:03.308>a <00:09:03.435>look <00:09:03.563>at <00:09:03.690>ASH <00:09:03.817>security <00:09:03.944>tool,

177
00:09:06.615 --> 00:09:10.125
<00:09:06.615>which <00:09:06.815>is, <00:09:07.015>um, <00:09:07.215>the <00:09:07.415>automated <00:09:07.615>security <00:09:07.815>helper <00:09:08.015>tool

178
00:09:10.645 --> 00:09:13.165
<00:09:10.645>provided <00:09:10.845>by <00:09:11.045>AWS <00:09:11.245>can <00:09:11.444>go <00:09:11.645>to <00:09:11.845>to <00:09:12.045>GitHub.

179
00:09:13.585 --> 00:09:15.245
<00:09:13.585>All <00:09:13.865>these <00:09:14.145>tools, <00:09:14.425>what <00:09:14.705>I'm <00:09:14.985>mentioning,

180
00:09:15.505 --> 00:09:17.525
<00:09:15.505>you <00:09:15.705>can <00:09:15.905>find <00:09:16.105>it <00:09:16.305>in <00:09:16.505>a <00:09:16.705>public <00:09:16.905>documentation,

181
00:09:17.625 --> 00:09:18.925
<00:09:17.625>you <00:09:17.859>can <00:09:18.093>find <00:09:18.327>it <00:09:18.560>in <00:09:18.795>GitHub.

182
00:09:19.385 --> 00:09:21.765
<00:09:19.385>And <00:09:19.540>that <00:09:19.696>tool <00:09:19.851>you <00:09:20.007>can <00:09:20.162>run <00:09:20.318>in <00:09:20.473>your <00:09:20.629>local <00:09:20.785>repo.

183
00:09:21.975 --> 00:09:25.045
<00:09:21.975>It'll <00:09:22.208>analyze <00:09:22.441>what <00:09:22.675>infrastructures <00:09:22.908>code <00:09:23.141>project <00:09:23.375>you're

184
00:09:25.045 --> 00:09:27.605
<00:09:25.045>using, <00:09:25.324>what <00:09:25.604>programming <00:09:25.885>language <00:09:26.165>you're <00:09:26.444>using,

185
00:09:27.785 --> 00:09:30.725
<00:09:27.785>and <00:09:28.064>pick <00:09:28.344>the <00:09:28.625>right <00:09:28.905>vulnerability <00:09:29.185>scanner

186
00:09:30.725 --> 00:09:32.805
<00:09:30.725>or <00:09:30.958>static <00:09:31.191>code <00:09:31.425>analysis <00:09:31.658>scanner <00:09:31.891>for <00:09:32.125>you.

187
00:09:33.065 --> 00:09:34.485
<00:09:33.065>And <00:09:33.320>you <00:09:33.576>can <00:09:33.831>run <00:09:34.087>that <00:09:34.343>locally.

188
00:09:34.705 --> 00:09:36.605
<00:09:34.705>You <00:09:34.880>can <00:09:35.055>run <00:09:35.230>it <00:09:35.405>in <00:09:35.580>a <00:09:35.755>CI <00:09:35.930>ICD <00:09:36.105>pipeline.

189
00:09:36.705 --> 00:09:40.285
<00:09:36.705>That's <00:09:36.860>actually <00:09:37.016>also <00:09:37.171>something <00:09:37.327>we <00:09:37.482>use <00:09:37.638>internally <00:09:37.793>in <00:09:37.949>AWS <00:09:38.105>when

190
00:09:40.285 --> 00:09:41.445
<00:09:40.285>we <00:09:40.633>develop <00:09:40.981>our <00:09:41.329>solutions.

191
00:09:43.815 --> 00:09:45.985
<00:09:43.815>Next <00:09:44.165>one <00:09:44.515>is <00:09:44.865>we <00:09:45.215>want

192
00:09:45.985 --> 00:09:49.025
<00:09:45.985>to <00:09:46.265>also <00:09:46.545>build <00:09:46.825>agent <00:09:47.105>solutions, <00:09:47.385>right?

193
00:09:49.245 --> 00:09:52.265
<00:09:49.245>Uh, <00:09:49.478>agent <00:09:49.711>AI <00:09:49.945>is <00:09:50.178>everywhere, <00:09:50.411>agencies <00:09:50.645>everywhere.

194
00:09:52.885 --> 00:09:57.385
<00:09:52.885>So <00:09:53.012>if <00:09:53.139>you <00:09:53.266>want <00:09:53.394>to <00:09:53.521>build <00:09:53.648>an <00:09:53.775>agent, <00:09:53.903>uh, <00:09:54.030>in <00:09:54.157>your <00:09:54.285>applications,

195
00:09:57.985 --> 00:10:02.185
<00:09:57.985>I <00:09:58.160>highly <00:09:58.335>recommend <00:09:58.510>to <00:09:58.685>look, <00:09:58.860>look <00:09:59.035>into <00:09:59.210>strand <00:09:59.385>agents.

196
00:10:02.375 --> 00:10:05.465
<00:10:02.375>It's <00:10:02.550>a <00:10:02.725>open <00:10:02.900>source <00:10:03.075>framework, <00:10:03.250>it's <00:10:03.425>developed <00:10:03.600>by <00:10:03.775>AWS

197
00:10:05.805 --> 00:10:09.985
<00:10:05.805>and <00:10:05.979>this <00:10:06.155>is <00:10:06.329>really <00:10:06.505>super <00:10:06.680>easy <00:10:06.854>to <00:10:07.030>develop <00:10:07.204>agents.

198
00:10:10.295 --> 00:10:13.305
<00:10:10.295>It's <00:10:10.528>literally <00:10:10.761>sometimes <00:10:10.995>two <00:10:11.228>lines <00:10:11.461>of <00:10:11.694>codes.

199
00:10:13.455 --> 00:10:15.425
<00:10:13.455>It's <00:10:13.688>one <00:10:13.921>where <00:10:14.155>you <00:10:14.388>define <00:10:14.621>your <00:10:14.855>agent

200
00:10:15.885 --> 00:10:17.785
<00:10:15.885>and <00:10:16.118>the <00:10:16.351>tools <00:10:16.585>the <00:10:16.818>agent <00:10:17.051>should <00:10:17.285>use.

201
00:10:18.005 --> 00:10:20.145
<00:10:18.005>It <00:10:18.180>could <00:10:18.355>be <00:10:18.530>tools, <00:10:18.705>it <00:10:18.880>could <00:10:19.055>be <00:10:19.230>MCP <00:10:19.405>servers,

202
00:10:20.145 --> 00:10:21.305
<00:10:20.145>it <00:10:20.406>could <00:10:20.666>be <00:10:20.928>other <00:10:21.189>agents.

203
00:10:22.085 --> 00:10:25.465
<00:10:22.085>And <00:10:22.365>these <00:10:22.645>tools <00:10:22.925>can <00:10:23.205>be, <00:10:23.485>uh,

204
00:10:25.905 --> 00:10:28.465
<00:10:25.905>actually <00:10:26.138>local <00:10:26.371>functions <00:10:26.605>which <00:10:26.838>you <00:10:27.071>annotate, <00:10:27.305>right?

205
00:10:28.725 --> 00:10:31.585
<00:10:28.725>In <00:10:28.880>this <00:10:29.036>case, <00:10:29.191>we <00:10:29.347>are <00:10:29.502>having <00:10:29.658>that <00:10:29.813>letter <00:10:29.969>counter <00:10:30.125>function.

206
00:10:31.845 --> 00:10:34.785
<00:10:31.845>We <00:10:31.972>just <00:10:32.099>annotate <00:10:32.226>it <00:10:32.354>as <00:10:32.481>a <00:10:32.608>tool, <00:10:32.735>pass <00:10:32.863>it <00:10:32.990>to <00:10:33.117>the <00:10:33.245>agent

207
00:10:34.965 --> 00:10:36.265
<00:10:34.965>and <00:10:35.199>the <00:10:35.433>agent <00:10:35.667>can <00:10:35.901>use <00:10:36.135>that.

208
00:10:36.605 --> 00:10:40.505
<00:10:36.605>And <00:10:36.745>if <00:10:36.885>you <00:10:37.025>then <00:10:37.165>call <00:10:37.305>the <00:10:37.445>agent <00:10:37.585>to <00:10:37.725>count <00:10:37.865>the <00:10:38.005>RS

209
00:10:40.505 --> 00:10:44.305
<00:10:40.505>and <00:10:40.645>strawberry, <00:10:40.785>we <00:10:40.925>all <00:10:41.064>know <00:10:41.205>the <00:10:41.345>famous, <00:10:41.485>uh, <00:10:41.625>prompt <00:10:41.765>here, <00:10:41.905>um,

210
00:10:44.335 --> 00:10:45.785
<00:10:44.335>then <00:10:44.552>you <00:10:44.770>will <00:10:44.987>get <00:10:45.205>the <00:10:45.422>right <00:10:45.640>answer

211
00:10:45.785 --> 00:10:49.345
<00:10:45.785>because <00:10:45.940>it'll <00:10:46.096>figure <00:10:46.251>out <00:10:46.407>how <00:10:46.562>to <00:10:46.718>use <00:10:46.873>the <00:10:47.029>tool, <00:10:47.185>right?

212
00:10:49.675 --> 00:10:52.505
<00:10:49.675>Super <00:10:49.830>easy. <00:10:49.986>I <00:10:50.141>will <00:10:50.297>highly <00:10:50.452>recommend <00:10:50.608>to <00:10:50.763>look <00:10:50.919>into <00:10:51.074>that.

213
00:10:52.955 --> 00:10:57.105
<00:10:52.955>There <00:10:53.110>is <00:10:53.266>also <00:10:53.421>actually <00:10:53.577>an <00:10:53.732>agent <00:10:53.888>builder <00:10:54.043>with <00:10:54.199>that <00:10:54.355>framework.

214
00:10:57.285 --> 00:11:00.305
<00:10:57.285>So <00:10:57.425>you <00:10:57.564>can <00:10:57.704>prompt <00:10:57.844>to <00:10:57.985>create <00:10:58.125>an <00:10:58.265>agent <00:10:58.405>with <00:10:58.545>an <00:10:58.685>agent.

215
00:11:00.415 --> 00:11:03.865
<00:11:00.415>It's <00:11:00.570>real <00:11:00.726>crazy. <00:11:00.881>It <00:11:01.037>provides <00:11:01.192>you <00:11:01.348>an <00:11:01.503>a <00:11:01.659>uh, <00:11:01.814>ui.

216
00:11:04.005 --> 00:11:05.585
<00:11:04.005>You <00:11:04.355>can <00:11:04.705>iterate <00:11:05.055>very <00:11:05.405>easily.

217
00:11:05.765 --> 00:11:09.305
<00:11:05.765>You <00:11:05.881>don't <00:11:05.998>have <00:11:06.115>to <00:11:06.231>rate <00:11:06.348>your <00:11:06.465>own <00:11:06.581>I <00:11:06.698>ui, <00:11:06.814>start <00:11:06.931>a <00:11:07.048>local <00:11:07.165>server,

218
00:11:09.615 --> 00:11:11.905
<00:11:09.615>have <00:11:09.790>a <00:11:09.965>ui, <00:11:10.140>and <00:11:10.315>then <00:11:10.490>interact <00:11:10.665>with <00:11:10.840>your <00:11:11.015>agent.

219
00:11:12.565 --> 00:11:15.225
<00:11:12.565>So <00:11:12.740>highly <00:11:12.915>recommended <00:11:13.090>here <00:11:13.265>to, <00:11:13.440>to <00:11:13.615>look <00:11:13.790>into <00:11:13.965>that.

220
00:11:16.005 --> 00:11:18.665
<00:11:16.005>Now, <00:11:16.205>sometimes <00:11:16.405>it <00:11:16.605>happens <00:11:16.805>that <00:11:17.005>we <00:11:17.205>deploy <00:11:17.405>something

221
00:11:18.725 --> 00:11:20.745
<00:11:18.725>and <00:11:18.925>something <00:11:19.125>is <00:11:19.325>not <00:11:19.525>working <00:11:19.725>for <00:11:19.925>some <00:11:20.125>reason.

222
00:11:20.795 --> 00:11:24.225
<00:11:20.795>Especially <00:11:20.995>when <00:11:21.194>it <00:11:21.395>comes <00:11:21.594>to <00:11:21.795>IM <00:11:21.995>the <00:11:22.194>permissions.

223
00:11:24.495 --> 00:11:26.105
<00:11:24.495>It's <00:11:24.961>sometimes <00:11:25.428>very <00:11:25.895>complex

224
00:11:26.125 --> 00:11:27.585
<00:11:26.125>to <00:11:26.453>understand <00:11:26.782>the <00:11:27.110>different <00:11:27.439>permissions

225
00:11:28.045 --> 00:11:29.265
<00:11:28.045>and <00:11:28.319>how <00:11:28.593>they <00:11:28.868>correlate <00:11:29.143>with.

226
00:11:30.005 --> 00:11:33.465
<00:11:30.005>That's <00:11:30.205>where <00:11:30.405>you <00:11:30.605>have <00:11:30.805>Amazon, <00:11:31.005>IM <00:11:31.205>policy <00:11:31.405>simulator.

227
00:11:33.775 --> 00:11:36.065
<00:11:33.775>Usually <00:11:34.125>I <00:11:34.475>give, <00:11:34.824>uh, <00:11:35.175>and,

228
00:11:36.065 --> 00:11:38.785
<00:11:36.065>and <00:11:36.240>share <00:11:36.415>with <00:11:36.590>my <00:11:36.765>clients <00:11:36.940>to <00:11:37.115>look <00:11:37.290>into <00:11:37.465>there.

229
00:11:38.805 --> 00:11:40.065
<00:11:38.805>You <00:11:39.088>can <00:11:39.372>configure <00:11:39.655>the <00:11:39.939>role.

230
00:11:40.085 --> 00:11:43.145
<00:11:40.085>You <00:11:40.260>are <00:11:40.435>using <00:11:40.610>the <00:11:40.785>policy, <00:11:40.960>you <00:11:41.135>have <00:11:41.310>the <00:11:41.485>permission

231
00:11:43.145 --> 00:11:46.545
<00:11:43.145>to <00:11:43.285>boundaries <00:11:43.425>and <00:11:43.564>then <00:11:43.704>you <00:11:43.845>can <00:11:43.985>select <00:11:44.125>the <00:11:44.265>action <00:11:44.405>you <00:11:44.545>want

232
00:11:46.545 --> 00:11:48.705
<00:11:46.545>to <00:11:46.778>actually <00:11:47.011>do <00:11:47.245>with <00:11:47.478>that <00:11:47.711>role, <00:11:47.944>right?

233
00:11:48.885 --> 00:11:52.465
<00:11:48.885>And <00:11:49.025>uh, <00:11:49.165>um, <00:11:49.305>resource <00:11:49.444>on <00:11:49.585>what <00:11:49.725>you <00:11:49.865>want <00:11:50.005>to <00:11:50.145>do <00:11:50.285>that

234
00:11:52.685 --> 00:11:55.725
<00:11:52.685>and <00:11:52.918>it'll <00:11:53.151>simulate <00:11:53.385>that <00:11:53.618>policy <00:11:53.851>for <00:11:54.084>you

235
00:11:56.225 --> 00:11:59.085
<00:11:56.225>and <00:11:56.380>tell <00:11:56.536>you <00:11:56.691>whether <00:11:56.847>it <00:11:57.002>is <00:11:57.158>allowed <00:11:57.313>or <00:11:57.469>denied, <00:11:57.625>right?

236
00:11:59.155 --> 00:12:01.045
<00:11:59.155>It's <00:11:59.435>super <00:11:59.714>easy <00:11:59.995>to <00:12:00.275>play <00:12:00.555>around

237
00:12:01.065 --> 00:12:03.845
<00:12:01.065>and <00:12:01.220>see <00:12:01.376>what <00:12:01.531>could <00:12:01.687>be <00:12:01.842>wrong <00:12:01.998>in <00:12:02.153>your <00:12:02.309>IM <00:12:02.465>policies.

238
00:12:05.195 --> 00:12:07.485
<00:12:05.195>Next <00:12:05.661>one <00:12:06.128>is, <00:12:06.595>um,

239
00:12:08.065 --> 00:12:11.005
<00:12:08.065>the <00:12:08.415>AWS <00:12:08.765>documentation <00:12:09.115>generation <00:12:09.465>server.

240
00:12:11.265 --> 00:12:12.965
<00:12:11.265>So <00:12:11.545>we <00:12:11.824>have <00:12:12.105>created <00:12:12.385>our <00:12:12.665>solution.

241
00:12:13.225 --> 00:12:16.205
<00:12:13.225>Now <00:12:13.400>we <00:12:13.575>want <00:12:13.750>to <00:12:13.925>have <00:12:14.100>a <00:12:14.275>nice <00:12:14.450>documentation, <00:12:14.625>right?

242
00:12:16.825 --> 00:12:20.045
<00:12:16.825>So <00:12:17.025>for <00:12:17.225>that <00:12:17.425>we <00:12:17.625>have <00:12:17.825>the <00:12:18.025>generation <00:12:18.225>server,

243
00:12:20.175 --> 00:12:23.205
<00:12:20.175>which <00:12:20.314>means <00:12:20.454>the <00:12:20.594>way <00:12:20.734>it <00:12:20.875>works <00:12:21.015>is <00:12:21.155>it <00:12:21.295>takes <00:12:21.435>your <00:12:21.574>GitHub

244
00:12:23.445 --> 00:12:24.605
<00:12:23.445>repo <00:12:23.793>or <00:12:24.141>git <00:12:24.489>repo.

245
00:12:25.185 --> 00:12:27.765
<00:12:25.185>It <00:12:25.418>scans <00:12:25.651>it, <00:12:25.885>it <00:12:26.118>uses <00:12:26.351>repo <00:12:26.584>mix

246
00:12:27.945 --> 00:12:30.805
<00:12:27.945>to <00:12:28.145>get <00:12:28.345>a <00:12:28.545>comprehensive <00:12:28.745>analysis <00:12:28.945>of <00:12:29.145>your <00:12:29.345>repository,

247
00:12:31.115 --> 00:12:32.285
<00:12:31.115>what <00:12:31.378>are <00:12:31.641>the <00:12:31.904>different <00:12:32.168>files,

248
00:12:32.385 --> 00:12:34.125
<00:12:32.385>how <00:12:32.585>the <00:12:32.785>structure <00:12:32.985>looks <00:12:33.185>like <00:12:33.385>and <00:12:33.585>so <00:12:33.785>on.

249
00:12:34.465 --> 00:12:36.925
<00:12:34.465>And <00:12:34.665>then <00:12:34.865>pass <00:12:35.065>it <00:12:35.265>further <00:12:35.465>to <00:12:35.665>further <00:12:35.865>analysis.

250
00:12:37.025 --> 00:12:40.805
<00:12:37.025>It <00:12:37.180>goes <00:12:37.336>file <00:12:37.491>by <00:12:37.647>file <00:12:37.802>and <00:12:37.958>see <00:12:38.113>what <00:12:38.269>is <00:12:38.425>inside

251
00:12:40.985 --> 00:12:43.485
<00:12:40.985>and <00:12:41.218>creates <00:12:41.451>a <00:12:41.685>documentation <00:12:41.918>for <00:12:42.151>for <00:12:42.385>you.

252
00:12:43.905 --> 00:12:45.285
<00:12:43.905>So <00:12:44.112>I've <00:12:44.319>done <00:12:44.526>that <00:12:44.733>in <00:12:44.939>my <00:12:45.146>project.

253
00:12:45.425 --> 00:12:48.165
<00:12:45.425>It <00:12:45.625>created <00:12:45.824>me <00:12:46.025>a <00:12:46.224>read <00:12:46.425>me <00:12:46.625>overall <00:12:46.824>structure,

254
00:12:48.275 --> 00:12:49.765
<00:12:48.275>what <00:12:48.610>is <00:12:48.945>inside <00:12:49.280>the <00:12:49.616>modules.

255
00:12:49.925 --> 00:12:53.245
<00:12:49.925>I <00:12:50.052>had <00:12:50.179>an <00:12:50.306>API, <00:12:50.434>it <00:12:50.561>created <00:12:50.688>me <00:12:50.815>a <00:12:50.943>documentation <00:12:51.070>for <00:12:51.197>my <00:12:51.324>API

256
00:12:53.425 --> 00:12:55.045
<00:12:53.425>for <00:12:53.658>my <00:12:53.891>backend <00:12:54.125>for <00:12:54.358>my <00:12:54.591>front <00:12:54.824>end.

257
00:12:55.425 --> 00:12:58.685
<00:12:55.425>And <00:12:55.625>then <00:12:55.824>interestingly, <00:12:56.025>it's <00:12:56.224>also <00:12:56.425>using <00:12:56.625>the <00:12:56.824>diagram

258
00:12:59.325 --> 00:13:01.045
<00:12:59.325>MCP <00:12:59.675>server <00:13:00.025>I <00:13:00.375>shared <00:13:00.725>previously

259
00:13:01.265 --> 00:13:03.285
<00:13:01.265>to <00:13:01.615>create <00:13:01.965>the <00:13:02.314>architecture <00:13:02.665>diagrams.

260
00:13:03.285 --> 00:13:05.845
<00:13:03.285>So <00:13:03.518>it'll <00:13:03.751>create <00:13:03.985>your <00:13:04.218>system <00:13:04.451>architecture <00:13:04.685>diagram,

261
00:13:06.205 --> 00:13:08.805
<00:13:06.205>a <00:13:06.380>component <00:13:06.555>diagram, <00:13:06.730>data <00:13:06.905>flow <00:13:07.080>diagram <00:13:07.255>and <00:13:07.430>so <00:13:07.605>on.

262
00:13:09.105 --> 00:13:11.845
<00:13:09.105>So <00:13:09.245>pretty <00:13:09.385>neat <00:13:09.525>if <00:13:09.665>you <00:13:09.805>want <00:13:09.945>to <00:13:10.085>have <00:13:10.225>a <00:13:10.365>comprehensive, <00:13:10.505>uh,

263
00:13:12.245 --> 00:13:15.125
<00:13:12.245>documentation <00:13:12.400>of <00:13:12.556>your <00:13:12.711>project <00:13:12.867>and <00:13:13.022>it <00:13:13.178>creates <00:13:13.333>that <00:13:13.489>for <00:13:13.645>you.

264
00:13:16.915 --> 00:13:21.005
<00:13:16.915>Alright? <00:13:17.055>Then <00:13:17.194>the <00:13:17.334>next <00:13:17.474>one <00:13:17.615>is, <00:13:17.755>uh, <00:13:17.895>sometimes <00:13:18.035>we <00:13:18.175>get <00:13:18.314>stuck,

265
00:13:21.025 --> 00:13:23.685
<00:13:21.025>we <00:13:21.199>get <00:13:21.375>code <00:13:21.550>and <00:13:21.725>we <00:13:21.900>want <00:13:22.074>to <00:13:22.250>improve <00:13:22.425>it,

266
00:13:24.065 --> 00:13:26.245
<00:13:24.065>but <00:13:24.345>we <00:13:24.625>don't <00:13:24.905>actually <00:13:25.185>understand <00:13:25.465>it.

267
00:13:26.845 --> 00:13:28.605
<00:13:26.845>I <00:13:27.078>know <00:13:27.311>it's <00:13:27.545>very <00:13:27.778>small <00:13:28.011>to <00:13:28.245>read,

268
00:13:28.785 --> 00:13:32.605
<00:13:28.785>but <00:13:28.925>what <00:13:29.064>I <00:13:29.204>did <00:13:29.344>here <00:13:29.485>is <00:13:29.625>I <00:13:29.765>found <00:13:29.905>a, <00:13:30.045>a <00:13:30.185>function

269
00:13:33.485 --> 00:13:36.205
<00:13:33.485>I <00:13:33.685>didn't <00:13:33.885>understand <00:13:34.085>what <00:13:34.285>it's <00:13:34.485>all <00:13:34.685>about, <00:13:34.885>right?

270
00:13:36.425 --> 00:13:39.565
<00:13:36.425>So <00:13:36.525>what <00:13:36.625>I <00:13:36.724>did <00:13:36.824>is <00:13:36.925>I <00:13:37.025>went <00:13:37.125>to <00:13:37.224>the <00:13:37.324>function, <00:13:37.425>it <00:13:37.525>could <00:13:37.625>be <00:13:37.724>a <00:13:37.824>line

271
00:13:39.565 --> 00:13:42.885
<00:13:39.565>of <00:13:39.705>code, <00:13:39.845>whatever <00:13:39.985>you <00:13:40.125>want, <00:13:40.265>click <00:13:40.405>a <00:13:40.545>right <00:13:40.685>click <00:13:40.825>on <00:13:40.965>it

272
00:13:43.025 --> 00:13:45.325
<00:13:43.025>and <00:13:43.258>then <00:13:43.491>let <00:13:43.725>Q <00:13:43.958>developer <00:13:44.191>explain <00:13:44.425>it.

273
00:13:45.345 --> 00:13:47.245
<00:13:45.345>So <00:13:45.625>there <00:13:45.905>are <00:13:46.185>functional <00:13:46.465>different <00:13:46.745>functionalities.

274
00:13:47.385 --> 00:13:49.045
<00:13:47.385>One <00:13:47.665>is <00:13:47.944>explain <00:13:48.225>me <00:13:48.505>that <00:13:48.785>code.

275
00:13:49.345 --> 00:13:52.045
<00:13:49.345>And <00:13:49.500>you <00:13:49.656>see <00:13:49.811>on <00:13:49.967>the <00:13:50.122>left <00:13:50.278>side <00:13:50.433>the <00:13:50.589>explanation <00:13:50.745>of

276
00:13:52.045 --> 00:13:53.645
<00:13:52.045>that <00:13:52.511>very <00:13:52.978>much <00:13:53.444>function

277
00:13:54.145 --> 00:13:56.765
<00:13:54.145>and <00:13:54.319>it's <00:13:54.495>also <00:13:54.670>taking <00:13:54.845>the <00:13:55.020>context <00:13:55.194>of <00:13:55.370>the <00:13:55.545>project.

278
00:13:56.995 --> 00:13:58.045
<00:13:56.995>It's <00:13:57.231>not <00:13:57.467>only <00:13:57.703>the <00:13:57.939>file,

279
00:13:58.065 --> 00:14:00.765
<00:13:58.065>but <00:13:58.298>the <00:13:58.531>whole <00:13:58.765>project <00:13:58.998>contact <00:13:59.231>is <00:13:59.465>taken

280
00:14:01.185 --> 00:14:02.645
<00:14:01.185>to <00:14:01.513>give <00:14:01.842>you <00:14:02.170>an <00:14:02.499>explanation

281
00:14:02.795 --> 00:14:04.565
<00:14:02.795>what <00:14:03.074>this <00:14:03.354>code <00:14:03.635>is <00:14:03.915>currently <00:14:04.194>doing.

282
00:14:08.855 --> 00:14:13.625
<00:14:08.855>Alright? <00:14:09.030>Then <00:14:09.205>we <00:14:09.380>have, <00:14:09.555>uh, <00:14:09.730>especially <00:14:09.905>when <00:14:10.080>we <00:14:10.255>want

283
00:14:13.625 --> 00:14:17.185
<00:14:13.625>to <00:14:13.780>build <00:14:13.936>serverless <00:14:14.091>applications, <00:14:14.247>when <00:14:14.402>we <00:14:14.558>want <00:14:14.713>to <00:14:14.869>build <00:14:15.025>uh,

284
00:14:17.245 --> 00:14:20.105
<00:14:17.245>lambda <00:14:17.478>functions, <00:14:17.711>that's <00:14:17.945>where <00:14:18.178>I <00:14:18.411>highly <00:14:18.645>recommend

285
00:14:20.105 --> 00:14:22.185
<00:14:20.105>to <00:14:20.385>look <00:14:20.665>into <00:14:20.945>AWS <00:14:21.225>power <00:14:21.505>tools.

286
00:14:22.535 --> 00:14:25.745
<00:14:22.535>It's <00:14:22.768>a <00:14:23.001>super <00:14:23.235>cool <00:14:23.468>framework <00:14:23.701>to <00:14:23.935>increase

287
00:14:26.325 --> 00:14:28.905
<00:14:26.325>the <00:14:26.675>observability <00:14:27.025>of <00:14:27.375>your <00:14:27.725>solution.

288
00:14:29.125 --> 00:14:32.225
<00:14:29.125>So <00:14:29.300>we <00:14:29.475>want <00:14:29.650>to <00:14:29.825>build <00:14:30.000>observability <00:14:30.175>into <00:14:30.350>your <00:14:30.525>solutions.

289
00:14:32.245 --> 00:14:34.665
<00:14:32.245>That's <00:14:32.420>where <00:14:32.595>you <00:14:32.770>want <00:14:32.945>to <00:14:33.120>use <00:14:33.295>AWS <00:14:33.470>power <00:14:33.645>tools.

290
00:14:35.285 --> 00:14:38.625
<00:14:35.285>For <00:14:35.459>example, <00:14:35.635>looking <00:14:35.810>at <00:14:35.985>the <00:14:36.160>uh, <00:14:36.334>lambda <00:14:36.510>handler <00:14:36.685>here,

291
00:14:38.725 --> 00:14:41.425
<00:14:38.725>you <00:14:38.925>can <00:14:39.125>add <00:14:39.325>tracing, <00:14:39.525>you <00:14:39.725>can <00:14:39.925>add <00:14:40.125>logging,

292
00:14:41.565 --> 00:14:44.385
<00:14:41.565>you <00:14:41.720>can <00:14:41.876>add <00:14:42.031>metrics <00:14:42.187>in <00:14:42.342>just <00:14:42.498>three <00:14:42.653>lines <00:14:42.809>of <00:14:42.965>code

293
00:14:44.725 --> 00:14:46.585
<00:14:44.725>and <00:14:44.958>that <00:14:45.191>will <00:14:45.425>do <00:14:45.658>it <00:14:45.891>for <00:14:46.125>you.

294
00:14:46.925 --> 00:14:49.345
<00:14:46.925>That's <00:14:47.204>of <00:14:47.484>course <00:14:47.765>some <00:14:48.045>standard <00:14:48.324>configurations,

295
00:14:49.485 --> 00:14:51.025
<00:14:49.485>but <00:14:49.762>you <00:14:50.039>can <00:14:50.316>configure <00:14:50.593>the <00:14:50.871>logger,

296
00:14:51.145 --> 00:14:53.005
<00:14:51.145>you <00:14:51.425>can <00:14:51.704>add <00:14:51.985>your <00:14:52.265>custom <00:14:52.545>metrics,

297
00:14:53.265 --> 00:14:56.205
<00:14:53.265>you <00:14:53.405>can <00:14:53.545>configure <00:14:53.685>the <00:14:53.824>tracer, <00:14:53.965>what <00:14:54.105>to <00:14:54.245>trace <00:14:54.385>and <00:14:54.525>what <00:14:54.665>not.

298
00:14:56.385 --> 00:14:57.605
<00:14:56.385>But <00:14:56.751>it's <00:14:57.117>super <00:14:57.483>easy

299
00:14:57.665 --> 00:15:01.205
<00:14:57.665>and <00:14:57.805>it'll <00:14:57.944>reduce <00:14:58.084>the <00:14:58.224>amount <00:14:58.365>of <00:14:58.505>code <00:14:58.645>you <00:14:58.785>have <00:14:58.925>to <00:14:59.064>write

300
00:15:01.585 --> 00:15:03.605
<00:15:01.585>to <00:15:01.935>bake <00:15:02.285>observability <00:15:02.635>into <00:15:02.985>it.

301
00:15:03.665 --> 00:15:05.485
<00:15:03.665>So <00:15:03.944>whenever <00:15:04.224>I <00:15:04.505>use <00:15:04.785>lamb <00:15:05.064>functions,

302
00:15:05.645 --> 00:15:07.765
<00:15:05.645>I <00:15:05.845>always <00:15:06.045>use <00:15:06.245>power <00:15:06.444>tools <00:15:06.645>along <00:15:06.845>with <00:15:07.045>that.

303
00:15:13.345 --> 00:15:16.955
<00:15:13.345>Next <00:15:13.520>we <00:15:13.695>have, <00:15:13.870>um, <00:15:14.045>let's <00:15:14.220>say <00:15:14.395>you <00:15:14.570>have, <00:15:14.745>uh,

304
00:15:16.955 --> 00:15:19.075
<00:15:16.955>already <00:15:17.235>a <00:15:17.515>tool <00:15:17.795>out <00:15:18.075>there, <00:15:18.355>uh,

305
00:15:19.085 --> 00:15:22.035
<00:15:19.085>which <00:15:19.285>is <00:15:19.485>using <00:15:19.685>the <00:15:19.885>open <00:15:20.085>AI <00:15:20.285>API, <00:15:20.485>right?

306
00:15:22.375 --> 00:15:26.475
<00:15:22.375>But <00:15:22.575>sometimes <00:15:22.775>it <00:15:22.975>is <00:15:23.175>actually <00:15:23.375>more <00:15:23.575>cost <00:15:23.775>efficient

307
00:15:26.535 --> 00:15:28.915
<00:15:26.535>to <00:15:26.814>use <00:15:27.094>Bedrock <00:15:27.375>and <00:15:27.655>the <00:15:27.935>LLMs

308
00:15:28.915 --> 00:15:30.995
<00:15:28.915>and <00:15:29.194>foundation <00:15:29.474>models <00:15:29.755>provided <00:15:30.035>by <00:15:30.314>Bedrock.

309
00:15:31.935 --> 00:15:35.235
<00:15:31.935>And <00:15:32.090>that's <00:15:32.246>where <00:15:32.401>you <00:15:32.557>have <00:15:32.712>the <00:15:32.868>Amazon <00:15:33.023>bedrock <00:15:33.179>access <00:15:33.334>gateway.

310
00:15:35.495 --> 00:15:37.635
<00:15:35.495>That's <00:15:35.695>something <00:15:35.895>you <00:15:36.095>can <00:15:36.295>deploy <00:15:36.495>in <00:15:36.695>your <00:15:36.895>account.

311
00:15:38.895 --> 00:15:43.115
<00:15:38.895>And <00:15:39.035>then <00:15:39.175>configure <00:15:39.314>any <00:15:39.454>client <00:15:39.595>which <00:15:39.735>is <00:15:39.875>using <00:15:40.015>open <00:15:40.155>AI <00:15:40.295>APIs

312
00:15:43.115 --> 00:15:44.795
<00:15:43.115>against <00:15:43.815>the <00:15:44.515>gateway.

313
00:15:45.535 --> 00:15:48.675
<00:15:45.535>And <00:15:45.675>then <00:15:45.814>you <00:15:45.954>can <00:15:46.094>use <00:15:46.235>cloud, <00:15:46.375>you <00:15:46.515>can <00:15:46.655>use <00:15:46.795>deep <00:15:46.935>seek,

314
00:15:48.815 --> 00:15:52.755
<00:15:48.815>you <00:15:48.990>can <00:15:49.165>use <00:15:49.340>whatever <00:15:49.515>model <00:15:49.690>we <00:15:49.865>have <00:15:50.040>in <00:15:50.215>Bedrock.

315
00:15:52.855 --> 00:15:56.835
<00:15:52.855>So <00:15:52.982>it <00:15:53.109>doesn't <00:15:53.236>have <00:15:53.364>to <00:15:53.491>be <00:15:53.618>actually <00:15:53.745>an <00:15:53.873>open <00:15:54.000>ai, <00:15:54.127>uh, <00:15:54.255>LLM.

316
00:16:00.335 --> 00:16:02.585
<00:16:00.335>Next <00:16:00.475>one <00:16:00.615>is, <00:16:00.755>uh, <00:16:00.895>a <00:16:01.035>quick <00:16:01.175>one <00:16:01.315>and <00:16:01.455>an <00:16:01.595>easy <00:16:01.735>one.

317
00:16:02.585 --> 00:16:07.145
<00:16:02.585>But <00:16:02.725>typically <00:16:02.865>what <00:16:03.005>I <00:16:03.145>do <00:16:03.285>is <00:16:03.425>when <00:16:03.565>I'm <00:16:03.705>exploring <00:16:03.845>APIs, <00:16:03.985>uh,

318
00:16:07.205 --> 00:16:11.145
<00:16:07.205>on <00:16:07.345>AWS <00:16:07.485>with <00:16:07.625>the <00:16:07.765>SDK, <00:16:07.905>you <00:16:08.045>actually <00:16:08.185>don't <00:16:08.325>want <00:16:08.465>to <00:16:08.605>code

319
00:16:11.205 --> 00:16:13.785
<00:16:11.205>and <00:16:11.380>test <00:16:11.555>code <00:16:11.730>and <00:16:11.905>test <00:16:12.080>that <00:16:12.255>takes <00:16:12.430>too <00:16:12.605>long.

320
00:16:14.125 --> 00:16:15.865
<00:16:14.125>So <00:16:14.358>usually <00:16:14.591>you <00:16:14.825>go <00:16:15.058>to <00:16:15.291>the <00:16:15.525>CLI

321
00:16:15.865 --> 00:16:17.985
<00:16:15.865>and <00:16:16.065>explore <00:16:16.265>the <00:16:16.465>API <00:16:16.665>while <00:16:16.865>the <00:16:17.065>CLI, <00:16:17.265>right?

322
00:16:18.485 --> 00:16:21.265
<00:16:18.485>And <00:16:18.685>for <00:16:18.885>that, <00:16:19.085>sometimes <00:16:19.285>you <00:16:19.485>actually <00:16:19.685>don't <00:16:19.885>want

323
00:16:21.265 --> 00:16:24.785
<00:16:21.265>to <00:16:21.420>execute <00:16:21.576>the <00:16:21.731>action <00:16:21.887>because <00:16:22.042>it <00:16:22.198>is <00:16:22.353>causing <00:16:22.509>your <00:16:22.665>costs

324
00:16:25.045 --> 00:16:27.025
<00:16:25.045>or <00:16:25.278>it's <00:16:25.511>kind <00:16:25.745>of <00:16:25.978>a <00:16:26.211>onetime <00:16:26.444>operation.

325
00:16:27.325 --> 00:16:30.345
<00:16:27.325>That's <00:16:27.500>where <00:16:27.675>you <00:16:27.850>use <00:16:28.025>the <00:16:28.200>CLI <00:16:28.375>dry <00:16:28.550>run <00:16:28.725>command,

326
00:16:30.715 --> 00:16:32.745
<00:16:30.715>which <00:16:31.065>would <00:16:31.415>run <00:16:31.765>this <00:16:32.115>command.

327
00:16:33.205 --> 00:16:35.545
<00:16:33.205>It <00:16:33.345>would <00:16:33.485>check <00:16:33.625>whether <00:16:33.765>you <00:16:33.905>have <00:16:34.045>the <00:16:34.185>permissions <00:16:34.325>to <00:16:34.465>do <00:16:34.605>so.

328
00:16:35.545 --> 00:16:37.425
<00:16:35.545>It <00:16:35.719>would <00:16:35.895>check <00:16:36.069>whether <00:16:36.245>the <00:16:36.420>a <00:16:36.594>MI <00:16:36.770>is <00:16:36.944>here,

329
00:16:37.565 --> 00:16:38.705
<00:16:37.565>the <00:16:37.821>instance <00:16:38.078>type <00:16:38.334>is <00:16:38.591>correct,

330
00:16:39.005 --> 00:16:41.145
<00:16:39.005>and <00:16:39.160>if <00:16:39.316>the <00:16:39.471>command <00:16:39.627>runs <00:16:39.782>true, <00:16:39.938>you <00:16:40.093>can <00:16:40.249>be <00:16:40.405>sure

331
00:16:41.415 --> 00:16:44.865
<00:16:41.415>that <00:16:41.555>you <00:16:41.694>can <00:16:41.834>use <00:16:41.974>that <00:16:42.115>also <00:16:42.255>in <00:16:42.395>your <00:16:42.535>um, <00:16:42.675>bottle <00:16:42.814>three

332
00:16:45.205 --> 00:16:46.785
<00:16:45.205>for <00:16:45.555>example, <00:16:45.905>Python <00:16:46.255>code, <00:16:46.605>right?

333
00:16:46.885 --> 00:16:49.225
<00:16:46.885>So <00:16:47.060>it's <00:16:47.235>a <00:16:47.410>easy <00:16:47.585>way <00:16:47.760>to <00:16:47.935>test <00:16:48.110>with <00:16:48.285>APIs

334
00:16:49.325 --> 00:16:52.065
<00:16:49.325>and <00:16:49.500>also <00:16:49.675>make <00:16:49.850>sure <00:16:50.025>that <00:16:50.200>you <00:16:50.375>don't <00:16:50.550>destroy <00:16:50.725>something.

335
00:16:54.265 --> 00:16:56.755
<00:16:54.265>Then <00:16:54.465>a <00:16:54.665>next <00:16:54.865>one. <00:16:55.064>Sorry, <00:16:55.265>I <00:16:55.465>jumped <00:16:55.665>quick

336
00:17:02.015 --> 00:17:03.015
<00:17:02.015>Now. <00:17:02.915>No.

338
00:17:05.535 --> 00:17:07.075
<00:17:05.535>Ah, <00:17:05.881>okay, <00:17:06.228>here <00:17:06.574>we <00:17:06.921>go.

339
00:17:07.735 --> 00:17:12.235
<00:17:07.734>So <00:17:07.862>that <00:17:07.989>was <00:17:08.116>um, <00:17:08.244>next <00:17:08.371>we <00:17:08.498>have <00:17:08.625>the <00:17:08.753>Lambda <00:17:08.880>tool, <00:17:09.007>MCP <00:17:09.135>server.

340
00:17:12.385 --> 00:17:15.035
<00:17:12.385>What <00:17:12.540>does <00:17:12.696>this <00:17:12.851>mean? <00:17:13.007>So <00:17:13.162>you <00:17:13.318>have <00:17:13.473>a <00:17:13.629>Lambda <00:17:13.785>function

341
00:17:15.255 --> 00:17:17.195
<00:17:15.255>and <00:17:15.488>you <00:17:15.721>want <00:17:15.955>to <00:17:16.188>use <00:17:16.421>the <00:17:16.655>functionality

342
00:17:17.195 --> 00:17:19.075
<00:17:17.194>of <00:17:17.544>your <00:17:17.895>Lambda <00:17:18.244>function <00:17:18.595>in

343
00:17:19.815 --> 00:17:21.875
<00:17:19.815>and <00:17:20.015>provide <00:17:20.215>it <00:17:20.415>as <00:17:20.615>a <00:17:20.815>MCP <00:17:21.015>server, <00:17:21.215>right?

344
00:17:22.055 --> 00:17:24.195
<00:17:22.055>So <00:17:22.288>for <00:17:22.521>that, <00:17:22.755>you <00:17:22.988>actually <00:17:23.221>don't <00:17:23.455>need

345
00:17:24.195 --> 00:17:26.915
<00:17:24.194>to <00:17:24.350>write <00:17:24.506>your <00:17:24.661>own <00:17:24.817>MCP <00:17:24.972>server <00:17:25.128>for <00:17:25.283>your <00:17:25.439>Lambda <00:17:25.595>function.

346
00:17:27.045 --> 00:17:29.595
<00:17:27.045>There <00:17:27.220>is <00:17:27.395>already <00:17:27.570>one <00:17:27.745>out <00:17:27.920>there <00:17:28.095>you <00:17:28.270>can <00:17:28.445>use.

347
00:17:30.095 --> 00:17:32.355
<00:17:30.095>And <00:17:30.250>the <00:17:30.406>way <00:17:30.561>you <00:17:30.717>do <00:17:30.872>it, <00:17:31.028>you <00:17:31.183>just <00:17:31.339>configure <00:17:31.495>it.

348
00:17:32.375 --> 00:17:35.275
<00:17:32.375>You'll <00:17:32.515>say, <00:17:32.655>okay, <00:17:32.795>that's <00:17:32.935>my <00:17:33.075>Lambda <00:17:33.215>function <00:17:33.355>I <00:17:33.495>want <00:17:33.635>to <00:17:33.775>use.

349
00:17:36.055 --> 00:17:37.835
<00:17:36.055>That's <00:17:36.405>the <00:17:36.755>input <00:17:37.105>it <00:17:37.455>needs.

350
00:17:37.835 --> 00:17:41.555
<00:17:37.835>That's <00:17:38.010>the <00:17:38.185>output <00:17:38.360>and <00:17:38.535>just <00:17:38.710>configure <00:17:38.885>this <00:17:39.060>MCP <00:17:39.235>server.

351
00:17:41.895 --> 00:17:43.195
<00:17:41.895>And <00:17:42.129>whenever <00:17:42.363>you <00:17:42.597>have <00:17:42.831>a <00:17:43.065>prompt,

352
00:17:43.205 --> 00:17:44.955
<00:17:43.205>which <00:17:43.485>goes <00:17:43.764>into <00:17:44.044>your <00:17:44.324>Lambda <00:17:44.605>function,

353
00:17:45.695 --> 00:17:48.835
<00:17:45.695>the <00:17:45.850>MCP <00:17:46.006>server <00:17:46.161>can <00:17:46.317>be <00:17:46.472>used <00:17:46.628>by <00:17:46.783>your <00:17:46.939>host, <00:17:47.095>right?

354
00:17:48.835 --> 00:17:50.605
<00:17:48.835>So <00:17:49.010>you <00:17:49.185>don't <00:17:49.360>need <00:17:49.535>to <00:17:49.710>write <00:17:49.885>a <00:17:50.060>own <00:17:50.235>one

355
00:17:50.745 --> 00:17:53.525
<00:17:50.745>and <00:17:50.885>whatever <00:17:51.024>lambda <00:17:51.165>function <00:17:51.304>you <00:17:51.445>have <00:17:51.584>there, <00:17:51.725>just <00:17:51.864>plug <00:17:52.004>it <00:17:52.145>in

356
00:17:53.545 --> 00:17:56.685
<00:17:53.545>and <00:17:53.720>use <00:17:53.895>it <00:17:54.070>in <00:17:54.245>your <00:17:54.420>your <00:17:54.595>um, <00:17:54.770>MCP <00:17:54.945>client.

357
00:17:58.715 --> 00:18:02.045
<00:17:58.715>Okay? <00:17:58.889>Next <00:17:59.064>one <00:17:59.240>is <00:17:59.415>the <00:17:59.590>last <00:17:59.764>one <00:17:59.939>for <00:18:00.115>implement.

358
00:18:02.225 --> 00:18:05.605
<00:18:02.225>So <00:18:02.365>we <00:18:02.504>have <00:18:02.645>now <00:18:02.784>past <00:18:02.925>the <00:18:03.064>design <00:18:03.205>phase <00:18:03.344>we <00:18:03.485>are <00:18:03.625>implementing,

359
00:18:06.105 --> 00:18:09.525
<00:18:06.105>and <00:18:06.232>the <00:18:06.359>last <00:18:06.486>one <00:18:06.614>I <00:18:06.741>would <00:18:06.868>recommend <00:18:06.995>is <00:18:07.123>having <00:18:07.250>a <00:18:07.377>look <00:18:07.505>at

360
00:18:09.585 --> 00:18:10.965
<00:18:09.585>Amazon <00:18:10.206>verified <00:18:10.827>permissions.

361
00:18:11.385 --> 00:18:13.485
<00:18:11.385>So <00:18:11.735>usually <00:18:12.085>in <00:18:12.435>your <00:18:12.785>applications

362
00:18:13.515 --> 00:18:16.205
<00:18:13.515>what <00:18:13.655>you <00:18:13.795>do <00:18:13.935>is <00:18:14.075>you <00:18:14.215>do <00:18:14.355>the <00:18:14.495>authentication <00:18:14.635>often <00:18:14.775>at <00:18:14.915>the

363
00:18:17.645 --> 00:18:18.765
<00:18:17.645>API <00:18:18.149>gateway, <00:18:18.653>right?

364
00:18:18.865 --> 00:18:21.485
<00:18:18.865>So <00:18:19.020>you <00:18:19.176>check <00:18:19.331>on <00:18:19.487>the <00:18:19.642>charge <00:18:19.798>token <00:18:19.953>open <00:18:20.109>a <00:18:20.265>ID

365
00:18:21.785 --> 00:18:23.525
<00:18:21.785>or <00:18:22.251>access <00:18:22.718>token, <00:18:23.185>right?

366
00:18:23.825 --> 00:18:25.045
<00:18:23.825>And <00:18:24.099>then <00:18:24.374>you <00:18:24.648>have <00:18:24.923>authenticated,

367
00:18:25.425 --> 00:18:29.205
<00:18:25.425>you <00:18:25.600>sometimes <00:18:25.774>also <00:18:25.950>do <00:18:26.125>some <00:18:26.300>kind <00:18:26.475>of <00:18:26.649>authorization <00:18:26.825>also

368
00:18:29.745 --> 00:18:30.885
<00:18:29.745>in <00:18:30.087>the <00:18:30.428>API <00:18:30.771>gateway.

369
00:18:31.345 --> 00:18:34.565
<00:18:31.345>Um, <00:18:31.500>if <00:18:31.656>you <00:18:31.811>use <00:18:31.967>for <00:18:32.122>example, <00:18:32.278>a <00:18:32.433>Lambda <00:18:32.589>authorizer, <00:18:32.745>right?

370
00:18:34.785 --> 00:18:38.525
<00:18:34.785>You <00:18:34.925>can <00:18:35.065>then <00:18:35.205>tell <00:18:35.345>what <00:18:35.485>endpoints <00:18:35.625>are <00:18:35.765>allowed <00:18:35.905>to <00:18:36.045>be <00:18:36.185>called

371
00:18:38.545 --> 00:18:40.045
<00:18:38.545>by <00:18:39.220>this <00:18:39.895>principle.

372
00:18:40.705 --> 00:18:44.245
<00:18:40.705>But <00:18:40.860>sometimes <00:18:41.016>you <00:18:41.171>also <00:18:41.327>have <00:18:41.482>to <00:18:41.638>do <00:18:41.793>fine <00:18:41.949>grant <00:18:42.105>permissions

373
00:18:44.785 --> 00:18:46.765
<00:18:44.785>in <00:18:45.135>your <00:18:45.485>application <00:18:45.835>itself, <00:18:46.185>right?

374
00:18:46.985 --> 00:18:49.925
<00:18:46.985>Is <00:18:47.112>this <00:18:47.239>function <00:18:47.366>be <00:18:47.494>allowed <00:18:47.621>by <00:18:47.748>this <00:18:47.875>user <00:18:48.003>or <00:18:48.130>by <00:18:48.257>this <00:18:48.385>group

375
00:18:50.465 --> 00:18:52.325
<00:18:50.465>or <00:18:50.931>um, <00:18:51.398>this <00:18:51.865>method.

376
00:18:52.865 --> 00:18:55.605
<00:18:52.865>That's <00:18:53.020>where <00:18:53.176>I <00:18:53.331>would <00:18:53.487>highly <00:18:53.642>recommend <00:18:53.798>to <00:18:53.953>look <00:18:54.109>into <00:18:54.265>Amazon

377
00:18:55.605 --> 00:18:57.885
<00:18:55.605>and <00:18:55.838>verified <00:18:56.071>permissions <00:18:56.305>you <00:18:56.538>can <00:18:56.771>put <00:18:57.005>out

378
00:18:58.145 --> 00:19:01.245
<00:18:58.145>or <00:18:58.320>pull <00:18:58.495>out <00:18:58.670>the <00:18:58.845>whole <00:18:59.020>authorization <00:18:59.195>into <00:18:59.370>a <00:18:59.545>service.

379
00:19:01.585 --> 00:19:05.245
<00:19:01.585>And <00:19:01.725>the <00:19:01.865>way <00:19:02.005>it <00:19:02.145>works <00:19:02.285>is <00:19:02.425>you <00:19:02.565>just <00:19:02.705>define <00:19:02.845>your <00:19:02.985>policies,

380
00:19:05.815 --> 00:19:06.885
<00:19:05.815>which <00:19:06.055>you <00:19:06.296>want <00:19:06.537>to <00:19:06.778>check.

381
00:19:07.185 --> 00:19:11.885
<00:19:07.185>For <00:19:07.325>example, <00:19:07.465>a <00:19:07.605>user <00:19:07.745>Ellis <00:19:07.885>is <00:19:08.024>allowed <00:19:08.165>to <00:19:08.304>update <00:19:08.445>a <00:19:08.585>resource,

382
00:19:12.265 --> 00:19:14.045
<00:19:12.265>uh, <00:19:12.731>photo <00:19:13.198>vocation, <00:19:13.665>right?

383
00:19:14.545 --> 00:19:16.365
<00:19:14.545>But <00:19:14.745>you <00:19:14.945>can <00:19:15.145>do <00:19:15.345>it <00:19:15.545>more <00:19:15.745>general, <00:19:15.945>right?

384
00:19:16.545 --> 00:19:19.085
<00:19:16.545>Uh, <00:19:16.720>principle <00:19:16.895>with <00:19:17.070>that <00:19:17.245>role <00:19:17.420>principle <00:19:17.595>with <00:19:17.770>that <00:19:17.945>group

385
00:19:19.195 --> 00:19:20.285
<00:19:19.195>with <00:19:19.685>the <00:19:20.176>attribute

386
00:19:20.345 --> 00:19:23.165
<00:19:20.345>and <00:19:20.500>so <00:19:20.656>on, <00:19:20.811>is <00:19:20.967>to <00:19:21.122>do <00:19:21.278>allow <00:19:21.433>action <00:19:21.589>on <00:19:21.745>this

387
00:19:23.445 --> 00:19:24.725
<00:19:23.445>resource <00:19:23.733>in <00:19:24.021>a <00:19:24.309>general <00:19:24.597>way.

388
00:19:25.105 --> 00:19:29.325
<00:19:25.105>And <00:19:25.212>what <00:19:25.320>you <00:19:25.428>then <00:19:25.535>do <00:19:25.643>is <00:19:25.751>you <00:19:25.858>provide <00:19:25.966>an <00:19:26.074>ID <00:19:26.181>token <00:19:26.289>from <00:19:26.397>Open <00:19:26.505>ID

389
00:19:29.585 --> 00:19:33.965
<00:19:29.585>and <00:19:29.740>have <00:19:29.896>the <00:19:30.051>verified <00:19:30.207>permission <00:19:30.362>called <00:19:30.518>with <00:19:30.673>that <00:19:30.829>ID <00:19:30.985>token

390
00:19:33.985 --> 00:19:36.445
<00:19:33.985>and <00:19:34.218>it'll <00:19:34.451>evaluate <00:19:34.685>whether <00:19:34.918>that <00:19:35.151>user <00:19:35.385>with

391
00:19:36.445 --> 00:19:38.325
<00:19:36.445>that <00:19:36.620>ID <00:19:36.794>token <00:19:36.970>is <00:19:37.145>actually <00:19:37.320>allowed <00:19:37.495>to <00:19:37.669>do <00:19:37.845>that

392
00:19:38.425 --> 00:19:39.445
<00:19:38.425>and <00:19:38.608>it <00:19:38.792>does <00:19:38.975>it <00:19:39.159>for <00:19:39.342>you.

393
00:19:39.985 --> 00:19:41.325
<00:19:39.985>So <00:19:40.226>this <00:19:40.467>is <00:19:40.708>a <00:19:40.949>easy <00:19:41.191>way

394
00:19:41.325 --> 00:19:43.485
<00:19:41.325>to <00:19:41.605>do <00:19:41.885>authorization <00:19:42.165>in <00:19:42.445>your <00:19:42.725>application.

395
00:19:43.485 --> 00:19:46.285
<00:19:43.485>Please <00:19:43.659>have <00:19:43.834>a <00:19:44.010>look <00:19:44.185>that's <00:19:44.360>actually <00:19:44.534>quite <00:19:44.709>quite <00:19:44.885>nice.

396
00:19:47.025 --> 00:19:50.925
<00:19:47.025>Now <00:19:47.200>we <00:19:47.375>are <00:19:47.550>in <00:19:47.725>the <00:19:47.900>testing <00:19:48.075>of <00:19:48.250>our <00:19:48.425>application

397
00:19:51.305 --> 00:19:53.605
<00:19:51.305>and <00:19:51.480>for <00:19:51.655>that <00:19:51.830>we <00:19:52.005>want <00:19:52.180>to <00:19:52.355>write <00:19:52.530>tests, <00:19:52.705>right?

398
00:19:54.075 --> 00:19:56.405
<00:19:54.075>Typically <00:19:54.250>we <00:19:54.425>also <00:19:54.600>do <00:19:54.775>that <00:19:54.950>actually <00:19:55.125>in <00:19:55.300>in <00:19:55.475>the,

399
00:19:57.105 --> 00:19:59.365
<00:19:57.105>in <00:19:57.455>the <00:19:57.805>implementation <00:19:58.155>already, <00:19:58.505>right?

400
00:19:59.985 --> 00:20:03.325
<00:19:59.985>Um, <00:20:00.140>but <00:20:00.296>that's <00:20:00.451>where <00:20:00.607>you <00:20:00.762>can <00:20:00.918>again <00:20:01.073>use <00:20:01.229>queue <00:20:01.385>developer

401
00:20:03.625 --> 00:20:07.725
<00:20:03.625>to <00:20:03.752>ask, <00:20:03.879>just <00:20:04.006>write <00:20:04.134>me <00:20:04.261>given <00:20:04.388>the <00:20:04.515>project <00:20:04.643>I <00:20:04.770>have <00:20:04.897>here <00:20:05.025>the

402
00:20:07.725 --> 00:20:11.285
<00:20:07.725>context <00:20:07.925>of <00:20:08.125>the <00:20:08.324>whole <00:20:08.524>project, <00:20:08.725>the <00:20:08.925>unit <00:20:09.125>tests,

403
00:20:11.385 --> 00:20:13.285
<00:20:11.385>and <00:20:11.585>it'll <00:20:11.785>write <00:20:11.985>your <00:20:12.185>unit <00:20:12.385>tests <00:20:12.585>for <00:20:12.785>you

404
00:20:13.585 --> 00:20:18.165
<00:20:13.585>and <00:20:13.785>you <00:20:13.985>can <00:20:14.185>just <00:20:14.385>run <00:20:14.585>them <00:20:14.785>afterwards <00:20:14.985>speak.

405
00:20:18.325 --> 00:20:21.685
<00:20:18.325>Speaking <00:20:18.480>of <00:20:18.636>testing <00:20:18.791>is <00:20:18.947>one <00:20:19.102>of <00:20:19.258>my <00:20:19.413>favorite <00:20:19.569>services <00:20:19.725>is,

406
00:20:21.785 --> 00:20:22.925
<00:20:21.785>uh, <00:20:22.298>step <00:20:22.811>functions.

407
00:20:23.465 --> 00:20:25.285
<00:20:23.465>And <00:20:23.814>you <00:20:24.165>can <00:20:24.514>actually <00:20:24.865>test

408
00:20:25.795 --> 00:20:28.005
<00:20:25.795>step <00:20:26.145>functions <00:20:26.495>completely <00:20:26.845>locally, <00:20:27.195>right?

409
00:20:28.185 --> 00:20:32.205
<00:20:28.185>The <00:20:28.292>way <00:20:28.400>it <00:20:28.508>works <00:20:28.615>is <00:20:28.723>you <00:20:28.831>have <00:20:28.938>um, <00:20:29.046>a <00:20:29.154>JAR <00:20:29.261>file <00:20:29.369>you <00:20:29.477>run <00:20:29.585>locally,

410
00:20:32.355 --> 00:20:34.725
<00:20:32.355>it's <00:20:32.555>a <00:20:32.755>local <00:20:32.955>runtime <00:20:33.155>of <00:20:33.355>your <00:20:33.555>step <00:20:33.755>functions

411
00:20:35.185 --> 00:20:37.805
<00:20:35.185>and <00:20:35.360>you <00:20:35.534>can <00:20:35.710>configure <00:20:35.885>it <00:20:36.060>how <00:20:36.235>it <00:20:36.409>should <00:20:36.585>behave.

412
00:20:38.425 --> 00:20:42.125
<00:20:38.425>And <00:20:38.552>you <00:20:38.679>could <00:20:38.806>say <00:20:38.934>whenever <00:20:39.061>there <00:20:39.188>is <00:20:39.315>a <00:20:39.443>task <00:20:39.570>check <00:20:39.697>stock <00:20:39.825>price

413
00:20:42.665 --> 00:20:45.965
<00:20:42.665>answer <00:20:42.945>with <00:20:43.225>this, <00:20:43.504>um, <00:20:43.784>response, <00:20:44.065>right?

414
00:20:45.965 --> 00:20:47.220
<00:20:45.965>That's <00:20:46.190>how <00:20:46.416>it <00:20:46.642>should <00:20:46.868>look <00:20:47.094>like.

415
00:20:47.585 --> 00:20:49.405
<00:20:47.585>And <00:20:47.785>then <00:20:47.985>you <00:20:48.185>can <00:20:48.385>take <00:20:48.585>your <00:20:48.785>step <00:20:48.985>function

416
00:20:49.625 --> 00:20:53.405
<00:20:49.625>and <00:20:49.780>deploy <00:20:49.936>it <00:20:50.091>to <00:20:50.247>your <00:20:50.402>local <00:20:50.558>runtime <00:20:50.713>and <00:20:50.869>execute <00:20:51.025>it

417
00:20:53.745 --> 00:20:56.165
<00:20:53.745>and <00:20:53.978>the <00:20:54.211>configuration <00:20:54.445>can <00:20:54.678>be <00:20:54.911>actually <00:20:55.145>changed.

418
00:20:56.305 --> 00:20:59.445
<00:20:56.305>So <00:20:56.505>you <00:20:56.705>can <00:20:56.905>change <00:20:57.105>check <00:20:57.305>the <00:20:57.505>left <00:20:57.705>path

419
00:20:59.815 --> 00:21:02.805
<00:20:59.815>where <00:20:59.970>the <00:21:00.126>recommended <00:21:00.281>type <00:21:00.437>is <00:21:00.592>by <00:21:00.748>or <00:21:00.903>the <00:21:01.059>right <00:21:01.215>path.

420
00:21:02.985 --> 00:21:06.645
<00:21:02.985>So <00:21:03.159>you <00:21:03.334>can <00:21:03.510>change <00:21:03.685>these <00:21:03.860>configurations <00:21:04.034>whenever <00:21:04.209>you <00:21:04.385>want

421
00:21:07.265 --> 00:21:09.965
<00:21:07.265>and <00:21:07.440>run <00:21:07.615>through <00:21:07.790>and <00:21:07.965>you <00:21:08.140>get <00:21:08.315>the <00:21:08.490>whole <00:21:08.665>output

422
00:21:09.985 --> 00:21:11.605
<00:21:09.985>of <00:21:10.264>your <00:21:10.544>step <00:21:10.824>functions <00:21:11.104>actually <00:21:11.385>locally,

423
00:21:11.815 --> 00:21:13.485
<00:21:11.815>which <00:21:12.165>is <00:21:12.515>quite <00:21:12.865>quite <00:21:13.215>neat.

424
00:21:15.245 --> 00:21:19.175
<00:21:15.245>Then <00:21:15.385>we <00:21:15.524>have <00:21:15.665>a <00:21:15.804>way <00:21:15.945>also <00:21:16.084>to <00:21:16.225>run <00:21:16.364>Amazon <00:21:16.504>DynamoDB <00:21:16.645>locally,

425
00:21:19.665 --> 00:21:23.535
<00:21:19.665>sorry, <00:21:19.792>for <00:21:19.919>all <00:21:20.046>the <00:21:20.174>use <00:21:20.301>cases <00:21:20.428>where <00:21:20.555>you <00:21:20.683>have <00:21:20.810>an <00:21:20.937>API <00:21:21.065>gateway,

426
00:21:23.815 --> 00:21:26.575
<00:21:23.815>a <00:21:24.015>front <00:21:24.215>end <00:21:24.415>Lambda <00:21:24.615>function <00:21:24.815>and <00:21:25.015>a <00:21:25.215>DynamoDB.

427
00:21:26.685 --> 00:21:28.575
<00:21:26.685>This <00:21:26.918>is <00:21:27.151>something <00:21:27.385>which <00:21:27.618>can <00:21:27.851>be <00:21:28.085>tested

428
00:21:28.585 --> 00:21:30.255
<00:21:28.585>completely <00:21:29.285>locally, <00:21:29.985>right?

429
00:21:30.635 --> 00:21:33.215
<00:21:30.635>So <00:21:30.790>you <00:21:30.946>have <00:21:31.101>the <00:21:31.257>API <00:21:31.412>gateway, <00:21:31.568>you <00:21:31.723>can <00:21:31.879>run <00:21:32.035>local,

430
00:21:33.435 --> 00:21:35.535
<00:21:33.435>you <00:21:33.635>can <00:21:33.835>have <00:21:34.034>the <00:21:34.235>Lambda <00:21:34.435>function <00:21:34.635>run <00:21:34.835>local,

431
00:21:35.715 --> 00:21:37.935
<00:21:35.715>you <00:21:35.948>can <00:21:36.181>have <00:21:36.415>the <00:21:36.648>DynamoDB <00:21:36.881>run <00:21:37.115>local.

432
00:21:38.275 --> 00:21:40.735
<00:21:38.275>So <00:21:38.508>for <00:21:38.741>all <00:21:38.975>these <00:21:39.208>crud <00:21:39.441>based <00:21:39.675>applications,

433
00:21:41.715 --> 00:21:43.295
<00:21:41.715>you <00:21:41.948>can <00:21:42.181>do <00:21:42.415>it <00:21:42.648>all <00:21:42.881>locally, <00:21:43.115>right?

434
00:21:43.315 --> 00:21:47.175
<00:21:43.315>And <00:21:43.442>it's <00:21:43.569>pretty <00:21:43.696>easy <00:21:43.824>to <00:21:43.951>set <00:21:44.078>up <00:21:44.205>and <00:21:44.333>to <00:21:44.460>iterate <00:21:44.587>via <00:21:44.715>that.

435
00:21:47.655 --> 00:21:49.855
<00:21:47.655>I <00:21:47.830>mean, <00:21:48.004>testing <00:21:48.180>as <00:21:48.355>a <00:21:48.530>whole <00:21:48.705>in <00:21:48.879>the <00:21:49.055>cloud

436
00:21:49.915 --> 00:21:51.095
<00:21:49.915>is <00:21:50.180>a <00:21:50.446>different <00:21:50.711>talk, <00:21:50.977>right?

437
00:21:51.155 --> 00:21:53.375
<00:21:51.155>So <00:21:51.388>there <00:21:51.621>are <00:21:51.855>different <00:21:52.088>approaches, <00:21:52.321>different <00:21:52.555>ways.

438
00:21:53.565 --> 00:21:55.895
<00:21:53.565>Sometimes <00:21:53.798>it <00:21:54.031>makes <00:21:54.265>sense <00:21:54.498>to <00:21:54.731>test <00:21:54.965>locally,

439
00:21:55.895 --> 00:21:58.215
<00:21:55.895>sometimes <00:21:56.245>it <00:21:56.595>completely <00:21:56.945>doesn't, <00:21:57.295>but

440
00:21:58.775 --> 00:22:01.015
<00:21:58.775>whenever <00:21:58.950>it <00:21:59.125>makes <00:21:59.300>sense <00:21:59.475>you <00:21:59.650>can <00:21:59.825>actually <00:22:00.000>do <00:22:00.175>it.

441
00:22:04.285 --> 00:22:07.535
<00:22:04.285>Same <00:22:04.425>as <00:22:04.565>with <00:22:04.705>uh, <00:22:04.845>glue <00:22:04.985>scripts <00:22:05.125>just <00:22:05.265>putting <00:22:05.405>in <00:22:05.545>out <00:22:05.685>here.

442
00:22:07.715 --> 00:22:11.855
<00:22:07.715>So <00:22:07.842>there <00:22:07.969>is <00:22:08.096>a <00:22:08.224>container <00:22:08.351>which <00:22:08.478>you <00:22:08.605>can <00:22:08.733>use <00:22:08.860>connected <00:22:08.987>with <00:22:09.115>uh,

443
00:22:11.925 --> 00:22:14.335
<00:22:11.925>your <00:22:12.100>VS <00:22:12.274>code <00:22:12.450>and <00:22:12.625>then <00:22:12.800>write <00:22:12.975>your <00:22:13.149>glue <00:22:13.325>script

444
00:22:14.395 --> 00:22:17.415
<00:22:14.395>and <00:22:14.595>then <00:22:14.795>run <00:22:14.995>that <00:22:15.195>on <00:22:15.395>uh, <00:22:15.595>that <00:22:15.795>container.

445
00:22:20.485 --> 00:22:24.775
<00:22:20.485>Then <00:22:20.612>on <00:22:20.739>testing, <00:22:20.866>um, <00:22:20.994>have <00:22:21.121>a <00:22:21.248>look <00:22:21.375>at <00:22:21.503>the <00:22:21.630>Lambda <00:22:21.757>test <00:22:21.885>utility

446
00:22:25.305 --> 00:22:27.095
<00:22:25.305>where <00:22:25.585>you <00:22:25.865>can <00:22:26.145>write <00:22:26.425>unit <00:22:26.705>tests

447
00:22:27.315 --> 00:22:30.415
<00:22:27.315>and <00:22:27.470>have <00:22:27.626>the <00:22:27.781>different <00:22:27.937>events <00:22:28.092>you <00:22:28.248>want <00:22:28.403>to <00:22:28.559>process <00:22:28.715>in.

448
00:22:30.435 --> 00:22:32.855
<00:22:30.435>For <00:22:30.668>example, <00:22:30.901>in <00:22:31.135>your <00:22:31.368>lambda <00:22:31.601>functions, <00:22:31.835>serialized

449
00:22:32.855 --> 00:22:34.455
<00:22:32.855>and <00:22:33.205>ize <00:22:33.555>by <00:22:33.905>this <00:22:34.255>library.

450
00:22:34.755 --> 00:22:38.135
<00:22:34.755>So <00:22:34.895>just <00:22:35.035>pointed <00:22:35.175>to <00:22:35.315>the <00:22:35.455>resource <00:22:35.595>where <00:22:35.735>the <00:22:35.875>Jason, <00:22:36.015>uh, <00:22:36.155>test,

451
00:22:38.555 --> 00:22:40.055
<00:22:38.555>uh, <00:22:39.005>event <00:22:39.455>JS <00:22:39.905>R

452
00:22:40.115 --> 00:22:41.495
<00:22:40.115>and <00:22:40.363>then <00:22:40.611>it <00:22:40.860>was <00:22:41.108>just <00:22:41.357>loaded,

453
00:22:41.765 --> 00:22:43.455
<00:22:41.765>serialize <00:22:41.998>it <00:22:42.231>for <00:22:42.465>you <00:22:42.698>and <00:22:42.931>run <00:22:43.165>it.

454
00:22:43.665 --> 00:22:47.055
<00:22:43.665>There <00:22:43.820>is <00:22:43.976>more <00:22:44.131>to <00:22:44.287>that <00:22:44.442>than <00:22:44.598>just <00:22:44.753>um, <00:22:44.909>the <00:22:45.065>serialization

455
00:22:47.155 --> 00:22:48.255
<00:22:47.155>and <00:22:48.145>parameterization.

456
00:22:48.755 --> 00:22:50.775
<00:22:48.755>So <00:22:48.930>have <00:22:49.105>a <00:22:49.280>look. <00:22:49.455>It's <00:22:49.630>actually <00:22:49.805>a <00:22:49.980>nice <00:22:50.155>library,

457
00:22:50.775 --> 00:22:53.655
<00:22:50.775>especially <00:22:51.008>when <00:22:51.241>you <00:22:51.475>are <00:22:51.708>developing, <00:22:51.941>um, <00:22:52.175>Java

458
00:22:54.075 --> 00:22:57.015
<00:22:54.075>and <00:22:54.230>have <00:22:54.386>want <00:22:54.541>to <00:22:54.697>do <00:22:54.852>unit <00:22:55.008>tests <00:22:55.163>with <00:22:55.319>lambda <00:22:55.475>functions.

459
00:22:57.155 --> 00:22:59.055
<00:22:57.155>That's <00:22:57.330>where <00:22:57.504>you <00:22:57.680>have <00:22:57.855>a <00:22:58.030>look <00:22:58.205>at <00:22:58.379>this <00:22:58.555>library.

460
00:23:00.015 --> 00:23:02.095
<00:23:00.015>Speaking <00:23:00.248>of <00:23:00.481>testing, <00:23:00.715>sometimes <00:23:00.948>we <00:23:01.181>also <00:23:01.415>want

461
00:23:02.095 --> 00:23:03.815
<00:23:02.095>to <00:23:02.445>have <00:23:02.795>test <00:23:03.145>data, <00:23:03.495>right?

462
00:23:04.265 --> 00:23:06.775
<00:23:04.265>Where <00:23:04.545>you <00:23:04.825>want <00:23:05.105>to <00:23:05.385>explore, <00:23:05.665>okay,

463
00:23:06.795 --> 00:23:08.815
<00:23:06.795>how <00:23:06.970>would <00:23:07.145>the <00:23:07.320>system <00:23:07.495>behave <00:23:07.670>when <00:23:07.845>I <00:23:08.020>have <00:23:08.195>this

464
00:23:08.815 --> 00:23:09.855
<00:23:08.815>amount <00:23:09.127>of <00:23:09.439>test <00:23:09.751>data?

465
00:23:10.195 --> 00:23:14.535
<00:23:10.195>And <00:23:10.322>that's <00:23:10.449>where <00:23:10.576>you <00:23:10.704>can <00:23:10.831>use <00:23:10.958>the <00:23:11.085>AWS <00:23:11.213>static <00:23:11.340>data <00:23:11.467>MCP <00:23:11.595>server,

466
00:23:14.845 --> 00:23:17.415
<00:23:14.845>just <00:23:15.045>describe <00:23:15.245>what <00:23:15.445>data <00:23:15.645>you <00:23:15.845>are <00:23:16.045>looking <00:23:16.245>for,

467
00:23:17.835 --> 00:23:20.255
<00:23:17.835>and <00:23:18.035>then <00:23:18.235>it'll <00:23:18.435>basically <00:23:18.635>on <00:23:18.835>your <00:23:19.035>use <00:23:19.235>case,

468
00:23:20.685 --> 00:23:21.775
<00:23:20.685>find <00:23:21.012>the <00:23:21.339>right <00:23:21.666>data.

469
00:23:21.885 --> 00:23:24.135
<00:23:21.885>Here <00:23:22.118>I'm <00:23:22.351>asking <00:23:22.585>for <00:23:22.818>a <00:23:23.051>e-commerce <00:23:23.285>platform

470
00:23:24.285 --> 00:23:27.895
<00:23:24.285>that <00:23:24.460>selects <00:23:24.635>sells <00:23:24.810>electronics <00:23:24.985>and <00:23:25.160>I <00:23:25.335>need <00:23:25.510>customer <00:23:25.685>data

471
00:23:28.315 --> 00:23:31.335
<00:23:28.315>and <00:23:28.455>of <00:23:28.595>course <00:23:28.735>also <00:23:28.875>product <00:23:29.015>data, <00:23:29.155>order <00:23:29.295>data <00:23:29.435>and <00:23:29.575>so <00:23:29.715>on.

472
00:23:32.355 --> 00:23:36.415
<00:23:32.355>And <00:23:32.495>it'll <00:23:32.635>create <00:23:32.775>the <00:23:32.915>different <00:23:33.055>kinds <00:23:33.195>of, <00:23:33.335>uh, <00:23:33.475>data <00:23:33.615>for <00:23:33.755>you.

473
00:23:36.675 --> 00:23:40.295
<00:23:36.675>And <00:23:36.850>here <00:23:37.024>it <00:23:37.200>created <00:23:37.375>a <00:23:37.550>e-commerce <00:23:37.725>data, <00:23:37.899>uh, <00:23:38.075>folder

474
00:23:40.525 --> 00:23:41.935
<00:23:40.525>with <00:23:40.842>all <00:23:41.159>the <00:23:41.476>different, <00:23:41.793>um,

475
00:23:42.845 --> 00:23:46.725
<00:23:42.845>test <00:23:43.545>data, <00:23:44.245>okay?

476
00:23:46.915 --> 00:23:50.725
<00:23:46.915>Then <00:23:47.055>we <00:23:47.195>have <00:23:47.335>passed <00:23:47.475>the <00:23:47.615>testing. <00:23:47.754>We <00:23:47.895>are <00:23:48.034>now <00:23:48.175>in <00:23:48.315>deployment.

477
00:23:50.985 --> 00:23:54.205
<00:23:50.985>And <00:23:51.140>for <00:23:51.296>that, <00:23:51.451>a <00:23:51.607>quick <00:23:51.762>one <00:23:51.918>is <00:23:52.073>the <00:23:52.229>AWS <00:23:52.385>Terraform

478
00:23:54.665 --> 00:23:57.325
<00:23:54.665>and <00:23:55.131>the <00:23:55.598>C-D-K-M-C-P <00:23:56.065>server.

479
00:23:57.545 --> 00:24:00.365
<00:23:57.545>So <00:23:57.745>you <00:23:57.945>can <00:23:58.145>write <00:23:58.345>CDK <00:23:58.545>code, <00:23:58.745>terraform <00:23:58.945>code

480
00:24:00.945 --> 00:24:05.005
<00:24:00.945>and <00:24:01.145>have <00:24:01.345>that <00:24:01.544>deployed <00:24:01.745>via <00:24:01.945>the <00:24:02.145>MCP <00:24:02.345>server.

481
00:24:05.145 --> 00:24:07.365
<00:24:05.145>So <00:24:05.300>you <00:24:05.456>can <00:24:05.611>run <00:24:05.767>in <00:24:05.922>the <00:24:06.078>CLI, <00:24:06.233>please <00:24:06.389>deploy <00:24:06.545>that

482
00:24:07.665 --> 00:24:09.605
<00:24:07.665>and <00:24:07.945>it'll <00:24:08.225>run <00:24:08.504>the <00:24:08.784>Terraform <00:24:09.065>commands

483
00:24:09.605 --> 00:24:10.925
<00:24:09.605>or <00:24:09.902>CDK <00:24:10.199>commands <00:24:10.495>for <00:24:10.793>you.

484
00:24:11.385 --> 00:24:13.765
<00:24:11.385>And <00:24:11.585>you <00:24:11.785>have <00:24:11.985>a <00:24:12.185>whole <00:24:12.385>CDK <00:24:12.585>set <00:24:12.785>up

485
00:24:13.905 --> 00:24:16.285
<00:24:13.905>and <00:24:14.080>you <00:24:14.254>can <00:24:14.430>of <00:24:14.605>course <00:24:14.780>change <00:24:14.955>it, <00:24:15.129>adapt <00:24:15.305>it,

486
00:24:16.305 --> 00:24:18.525
<00:24:16.305>it <00:24:16.538>understands <00:24:16.771>the <00:24:17.005>CDK <00:24:17.238>structure <00:24:17.471>and <00:24:17.705>code

487
00:24:18.525 --> 00:24:20.085
<00:24:18.525>and <00:24:18.758>the <00:24:18.991>framework <00:24:19.225>you <00:24:19.458>can <00:24:19.691>then <00:24:19.925>use.

488
00:24:22.555 --> 00:24:25.485
<00:24:22.555>Next <00:24:23.021>one <00:24:23.488>is <00:24:23.955>The

489
00:24:26.805 --> 00:24:28.845
<00:24:26.805>AWS <00:24:27.271>database, <00:24:27.738>MCP <00:24:28.205>servers.

490
00:24:28.945 --> 00:24:30.805
<00:24:28.945>We <00:24:29.178>are <00:24:29.411>now <00:24:29.645>in <00:24:29.878>maintain <00:24:30.111>mode, <00:24:30.345>right?

491
00:24:30.825 --> 00:24:33.285
<00:24:30.825>So <00:24:31.025>we <00:24:31.225>have <00:24:31.425>deployed <00:24:31.625>our <00:24:31.825>application, <00:24:32.025>it's <00:24:32.225>running,

492
00:24:33.585 --> 00:24:35.845
<00:24:33.585>but <00:24:33.760>we <00:24:33.935>also <00:24:34.110>want <00:24:34.285>to <00:24:34.460>understand <00:24:34.635>what <00:24:34.810>is <00:24:34.985>happening.

493
00:24:35.845 --> 00:24:38.165
<00:24:35.845>Sometimes <00:24:36.045>we <00:24:36.245>have <00:24:36.445>to <00:24:36.645>look <00:24:36.845>into <00:24:37.045>the <00:24:37.245>databases.

494
00:24:38.515 --> 00:24:40.765
<00:24:38.515>It's, <00:24:38.865>uh, <00:24:39.215>unfortunate <00:24:39.565>and <00:24:39.915>ugly,

495
00:24:41.025 --> 00:24:42.445
<00:24:41.025>but <00:24:41.238>sometimes <00:24:41.451>you <00:24:41.664>have <00:24:41.877>to <00:24:42.090>do <00:24:42.303>that.

496
00:24:42.705 --> 00:24:45.605
<00:24:42.705>And <00:24:42.860>for <00:24:43.016>that <00:24:43.171>we <00:24:43.327>have <00:24:43.482>a <00:24:43.638>couple <00:24:43.793>of <00:24:43.949>MCP <00:24:44.105>servers

497
00:24:45.605 --> 00:24:46.965
<00:24:45.605>to <00:24:46.013>access <00:24:46.421>our <00:24:46.829>databases.

498
00:24:47.315 --> 00:24:50.285
<00:24:47.315>It's <00:24:47.515>Aurora <00:24:47.715>Dyb, <00:24:47.915>elastic <00:24:48.115>Cache <00:24:48.315>and <00:24:48.515>so <00:24:48.715>on.

499
00:24:50.785 --> 00:24:54.045
<00:24:50.785>So <00:24:50.925>you <00:24:51.065>can <00:24:51.205>just <00:24:51.345>ask <00:24:51.485>the <00:24:51.625>database, <00:24:51.765>Hey, <00:24:51.905>what <00:24:52.045>is, <00:24:52.185>uh,

500
00:24:54.265 --> 00:24:57.085
<00:24:54.265>the <00:24:54.440>number <00:24:54.615>order <00:24:54.790>of <00:24:54.965>this <00:24:55.140>customer <00:24:55.315>and <00:24:55.490>so <00:24:55.665>on,

501
00:24:57.085 --> 00:24:59.805
<00:24:57.085>and <00:24:57.285>it'll <00:24:57.485>run <00:24:57.685>the <00:24:57.885>SQL <00:24:58.085>statements <00:24:58.285>for <00:24:58.485>you

502
00:25:00.025 --> 00:25:02.965
<00:25:00.025>and <00:25:00.180>give <00:25:00.336>you <00:25:00.491>the <00:25:00.647>data <00:25:00.802>back, <00:25:00.958>uh, <00:25:01.113>in <00:25:01.269>your <00:25:01.425>CLI.

503
00:25:03.065 --> 00:25:04.925
<00:25:03.065>So <00:25:03.265>that <00:25:03.465>can <00:25:03.665>be <00:25:03.865>also <00:25:04.065>used <00:25:04.265>in <00:25:04.465>VS.

504
00:25:04.925 --> 00:25:06.645
<00:25:04.925>Code <00:25:05.205>and <00:25:05.485>other <00:25:05.764>tools <00:25:06.044>like <00:25:06.325>that.

505
00:25:09.835 --> 00:25:13.845
<00:25:09.835>Next <00:25:10.010>one, <00:25:10.185>of <00:25:10.360>course, <00:25:10.535>um, <00:25:10.710>things <00:25:10.885>go <00:25:11.060>wrong, <00:25:11.235>right?

506
00:25:14.305 --> 00:25:17.045
<00:25:14.305>And <00:25:14.460>you <00:25:14.616>want <00:25:14.771>to <00:25:14.927>understand <00:25:15.082>what <00:25:15.238>is <00:25:15.393>happening <00:25:15.549>in <00:25:15.705>your,

507
00:25:17.705 --> 00:25:18.805
<00:25:17.705>in <00:25:18.200>your <00:25:18.695>logs.

508
00:25:18.865 --> 00:25:22.165
<00:25:18.865>And <00:25:19.020>that's <00:25:19.176>where <00:25:19.331>we <00:25:19.487>have <00:25:19.642>the <00:25:19.798>Amazon <00:25:19.953>CloudWatch <00:25:20.109>MCP <00:25:20.265>server.

509
00:25:22.805 --> 00:25:25.405
<00:25:22.805>Actually <00:25:22.980>a <00:25:23.155>second <00:25:23.330>version <00:25:23.505>just <00:25:23.680>released <00:25:23.855>two <00:25:24.030>days <00:25:24.205>ago.

510
00:25:25.665 --> 00:25:29.085
<00:25:25.665>An <00:25:25.865>improved <00:25:26.065>version. <00:25:26.264>And <00:25:26.465>you <00:25:26.665>can <00:25:26.865>ask <00:25:27.065>on

511
00:25:29.395 --> 00:25:30.845
<00:25:29.395>what <00:25:29.721>alarms <00:25:30.047>do <00:25:30.373>I <00:25:30.700>have?

512
00:25:31.105 --> 00:25:32.645
<00:25:31.105>You <00:25:31.382>can <00:25:31.659>do <00:25:31.936>root <00:25:32.213>cause <00:25:32.491>analysis.

513
00:25:32.645 --> 00:25:36.005
<00:25:32.645>You <00:25:32.772>can <00:25:32.899>look <00:25:33.026>into <00:25:33.154>the <00:25:33.281>metrics, <00:25:33.408>you <00:25:33.535>can <00:25:33.663>look <00:25:33.790>into <00:25:33.917>the <00:25:34.045>logs

514
00:25:36.105 --> 00:25:39.325
<00:25:36.105>and <00:25:36.280>ask <00:25:36.455>what <00:25:36.630>are <00:25:36.805>some <00:25:36.980>anonymities <00:25:37.155>it <00:25:37.330>can <00:25:37.505>see?

515
00:25:39.745 --> 00:25:42.805
<00:25:39.745>So <00:25:39.861>have <00:25:39.978>a <00:25:40.094>look. <00:25:40.211>If <00:25:40.328>you <00:25:40.445>want <00:25:40.561>to <00:25:40.678>chat <00:25:40.794>actually <00:25:40.911>with <00:25:41.028>your <00:25:41.145>logs,

516
00:25:43.025 --> 00:25:45.405
<00:25:43.025>that's <00:25:43.200>where <00:25:43.375>you <00:25:43.550>can <00:25:43.725>use <00:25:43.900>the <00:25:44.075>CloudWatch <00:25:44.250>MCP <00:25:44.425>server.

517
00:25:47.115 --> 00:25:51.925
<00:25:47.115>Okay? <00:25:47.270>And <00:25:47.426>then <00:25:47.581>we <00:25:47.737>also <00:25:47.892>have <00:25:48.048>the, <00:25:48.203>uh, <00:25:48.359>maintain, <00:25:48.515>uh,

518
00:25:52.315 --> 00:25:53.685
<00:25:52.315>part <00:25:52.623>with <00:25:52.931>the, <00:25:53.239>the <00:25:53.548>cost.

519
00:25:53.905 --> 00:25:57.085
<00:25:53.905>So <00:25:54.045>we <00:25:54.185>have <00:25:54.325>run <00:25:54.465>our <00:25:54.605>application <00:25:54.745>for <00:25:54.885>a <00:25:55.024>month <00:25:55.165>or <00:25:55.305>two

520
00:25:57.185 --> 00:26:00.005
<00:25:57.185>and <00:25:57.312>want <00:25:57.439>to <00:25:57.566>see, <00:25:57.694>okay, <00:25:57.821>how <00:25:57.948>are <00:25:58.075>the <00:25:58.203>costs <00:25:58.330>evolving <00:25:58.457>And <00:25:58.585>for

521
00:26:00.005 --> 00:26:01.085
<00:26:00.005>that, <00:26:00.977>similarly,

522
00:26:01.215 --> 00:26:04.085
<00:26:01.215>there <00:26:01.355>is <00:26:01.495>also <00:26:01.635>an <00:26:01.774>MCP <00:26:01.915>server <00:26:02.054>here, <00:26:02.195>which <00:26:02.334>you <00:26:02.475>can <00:26:02.615>use.

523
00:26:04.545 --> 00:26:06.885
<00:26:04.545>And <00:26:04.895>it'll <00:26:05.245>run <00:26:05.595>the <00:26:05.945>cost

524
00:26:06.905 --> 00:26:10.165
<00:26:06.905>and <00:26:07.105>usage <00:26:07.305>comparison <00:26:07.504>for <00:26:07.705>let's <00:26:07.905>say <00:26:08.105>between <00:26:08.305>May

525
00:26:10.165 --> 00:26:11.845
<00:26:10.165>and <00:26:10.365>June <00:26:10.565>for <00:26:10.764>you <00:26:10.965>here <00:26:11.165>in <00:26:11.365>the <00:26:11.565>example,

526
00:26:12.105 --> 00:26:13.885
<00:26:12.105>and <00:26:12.305>show <00:26:12.505>you <00:26:12.705>what <00:26:12.905>are <00:26:13.105>the <00:26:13.305>changes <00:26:13.505>in

527
00:26:13.885 --> 00:26:16.085
<00:26:13.885>what <00:26:14.165>services <00:26:14.445>one <00:26:14.725>increase, <00:26:15.004>what <00:26:15.285>decrease.

528
00:26:18.265 --> 00:26:21.965
<00:26:18.265>And <00:26:18.465>finally <00:26:18.665>we <00:26:18.865>have, <00:26:19.065>um, <00:26:19.265>the <00:26:19.465>NoSQL <00:26:19.665>workbench,

529
00:26:21.965 --> 00:26:23.805
<00:26:21.965>something <00:26:22.165>you <00:26:22.365>may <00:26:22.564>want <00:26:22.764>to <00:26:22.965>have <00:26:23.165>a <00:26:23.365>look.

530
00:26:24.105 --> 00:26:28.325
<00:26:24.105>That's <00:26:24.280>where <00:26:24.455>you <00:26:24.630>can <00:26:24.805>model <00:26:24.980>your <00:26:25.155>tables <00:26:25.330>for <00:26:25.505>DynamoDB

531
00:26:28.705 --> 00:26:31.445
<00:26:28.705>and <00:26:28.879>change <00:26:29.054>these <00:26:29.230>models, <00:26:29.405>adapt <00:26:29.580>these, <00:26:29.754>have <00:26:29.929>a <00:26:30.105>look,

532
00:26:31.985 --> 00:26:35.805
<00:26:31.985>but <00:26:32.185>also, <00:26:32.385>uh, <00:26:32.584>browse <00:26:32.784>your, <00:26:32.985>your <00:26:33.185>DynamoDB <00:26:33.385>tables

533
00:26:36.065 --> 00:26:37.845
<00:26:36.065>and, <00:26:36.345>uh, <00:26:36.625>explore <00:26:36.905>what <00:26:37.185>is <00:26:37.465>inside.

534
00:26:39.665 --> 00:26:42.845
<00:26:39.665>And <00:26:39.865>with <00:26:40.065>that, <00:26:40.264>I'm <00:26:40.465>closing <00:26:40.665>my <00:26:40.865>quick <00:26:41.065>walkthrough

535
00:26:43.385 --> 00:26:47.125
<00:26:43.385>to <00:26:43.560>the <00:26:43.735>thirties <00:26:43.910>hacks, <00:26:44.085>uh, <00:26:44.260>for <00:26:44.435>working <00:26:44.610>with <00:26:44.785>AWS.

536
00:26:47.545 --> 00:26:49.725
<00:26:47.545>Of <00:26:47.685>course, <00:26:47.825>as <00:26:47.965>I <00:26:48.105>said, <00:26:48.245>there <00:26:48.385>are <00:26:48.525>a <00:26:48.665>lot <00:26:48.805>of <00:26:48.945>things

537
00:26:49.745 --> 00:26:51.365
<00:26:49.745>to <00:26:50.094>be <00:26:50.445>smart <00:26:50.794>about <00:26:51.145>AWS

538
00:26:51.705 --> 00:26:55.805
<00:26:51.705>but <00:26:51.879>that <00:26:52.054>was <00:26:52.230>kind <00:26:52.405>of <00:26:52.580>a <00:26:52.754>personal, <00:26:52.929>uh, <00:26:53.105>selection.

539
00:26:56.275 --> 00:27:00.885
<00:26:56.275>Also <00:26:56.450>matching <00:26:56.625>to <00:26:56.800>the <00:26:56.975>theme <00:26:57.150>of <00:26:57.325>the <00:26:57.500>agent, <00:26:57.675>uh,

540
00:27:01.225 --> 00:27:03.205
<00:27:01.225>AI <00:27:01.425>we <00:27:01.625>have <00:27:01.824>here <00:27:02.024>at <00:27:02.225>the <00:27:02.425>VR <00:27:02.625>developers.

541
00:27:03.495 --> 00:27:04.205
<00:27:03.495>Thank <00:27:03.707>you <00:27:03.920>very <00:27:04.134>much.