AWS Amplify Fullstack Project Setup (React, Node, Lambda, REST API)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone this video is going to teach you how to use aws amplify to build a full stack application for the front end we're going to be using react.js and for the backend we're going to be using node.js combined with an api gateway endpoint and a lambda function to host our rest api i'm going to walk you through all the steps and explain to you all the settings along the way so let's get started all right guys so here we are in visual studio code this is a completely empty project and we're going to be starting from scratch here now before we get started there are a couple prerequisites you need mpm you need the amplify cli and you need git installed if you don't have those things i'll leave some links down below that you can learn how to do that but from this point forward i can assume you have all those things installed so first of all let's just create a basic application using mpx so we're going to say mpx create react app and then just give this a name so i'm going to call this amplify demo app for this case so this is going to download a whole bunch of dependencies this may take a little while here if it takes too long actually that was pretty quickly maybe not if this takes too long i'll do some movie magic and fast forward this for you all right so everything finally finished let's just switch into that project directory now and then just run mpm start to make sure that everything was set up correctly and we just get a basic hello world application on our browser here all right so this loaded up a browser tab on localhost port 3000 you can see we just have a very basic react application now so we can close this out and i'm just going to go back into our code editor here to actually get started with the amplify part so just ctrl c to terminate end there and let's just clear everything off here all right so our next step is to run amplify init and this is going to initialize our project we just have to fill out some very basic things here so it's asking us for a name for our project you can change this or leave it as default by default it just takes the name of your folder so i'm going to press enter there we're going to set up a dev environment that's fine i'm using visual studio code here but you can pick something else another good one is intellij so visual studio code is good we're going to be doing this with a javascript based application and we're going to be using react and source for our directory path is fine as well basically leave almost everything default here yeah you can leave that as the build command and start command and we're going to be using aws cloudformation so at this point there's some initialization steps that need to have happened with aws amplify so we need to point it now to our aws cli profile because it does use the aws cli in order to launch and deploy your code into aws so if you've already set up your cli then you just can use a profile so i'm just going to press y here and i'm just going to select my amplified demo profile that i already created now optionally if you pressed no then you can go ahead and create a user an iem user and go grab those access keys and the secret access keys and just put them in here keep in mind you do need like administrative access in order to do that so i'm just going to select amplify demo here and this should close out pretty quickly and then we should be able to take a look at our code uh so what's happening right now is that you see uh adding backend environment dev to aws amplify console app so there are some things and you can see like a bunch of stuff happening here in the console and this is where some people get a little bit confused in terms of what amplify is actually doing we're seeing like crate in progress it's creating a bucket an auth roll crate complete like how is it doing all of this stuff and like how do you actually see this in aws so it turns out what's actually happening is that we're using a technology called aws cloud formation and this is a service that's offered by aws that lets you write infrastructure as code and more specifically it lets you write template files that you can upload to cloudformation and that creates aws resources for you so we're going to let this run for a second i'm going to go into the console now and show you a little bit about what is happening so i just have my console browser up and i'm logged into my account that's linked with this profile and we're going to go into cloudformation if it's not here you can just search for it up at the top here so i'm going to go into cloudformation and here you're gonna see a bunch of different stacks now the bottom two are ones that are just for my personal project so don't worry about that but you can see here there's this top one amplify and then amplify demo app that's the name of the project that we just created amplify demo app so if i click on this now we can start to see a little bit about what amplify is actually doing behind the scenes and this is important if you're using amplify because a lot of people get confused because they think amplify is doing all this magical stuff but they don't know what it's doing on the back end so pay attention to this so all of those things that we were seeing in our terminal are also visible on the events page so if you come here let me just like zoom out my tab so you can see a little bit better and just expand this so you can see like this is an event log of all the things that ews amplify is creating for us through that cloud formation template file that it is also generating so you see here all this information like create in progress create complete this is giving you status updates in terms of all the resources that amplify is creating a lot of this stuff right now is just like bootstrap boilerplate that you don't really need to care or know about but it's important to know like everything else when you add a back end it's all going to work the same way amplify uses cloudformation to deploy your resources so when you add like a api for example you're going to be able to come back later and see an api gateway a lambda function and a whole bunch of other resources that are going to be present that are necessary for that setup to work so just keep that in mind now if you want to narrow down this and just look at like what resources are being created then you can go to the top tab and click on resources so this is going to show you the specific things that are created and if you look at the type section you can see aws iam role aws s3 bucket and another aws iem rule and you can see that they're all completed successfully so that's what's going on this is how amplify and cloud formation work together to add all this cool stuff to your project now before we go back to the console and resume with adding the next components i just want to go into the amplify section now to show you kind of the same thing so let's go to the top and type in amplify and so we got aws amplify and since we just initialized our project you can see now that we have access to our application here so if i click on this guy this will bring us into kind of the like front end portal for amplify and so you can click around here and see what's going on there's nothing really that exists we just created basically an initialization project with a back end so it's got a dev environment set up you can see there's no front-end environment we'll get to this a little bit later on but you can come here a little bit later like you can even come here and click and see what's going on there's a bunch of different pieces here but really nothing special so let's go back now to our terminal to move on to the next steps now all right so before we go ahead and add our api i just want to show you the file structure to give you an idea of what is actually happening here so you can see now in our code section here if i expand this out a little bit a whole bunch of project files got created there's a readme there's packets json there's all sorts of things that are happening here so you can go ahead and read the readmes to understand a little bit more about the project but let me just give you kind of the tl dr so the source project or the source folder rather is where all of our react.js code is going to be it's all in this folder so like app.js you can see this is very familiar react code just close that up everything that has to do with amplify in terms of the backend will be in the amplify subdirectory here so you can see in amplify then there's a backend folder and right now there's nothing in here this was just like an empty project that we just created but when we add our api um when we create our lambda function we're gonna have a subfolder here that's gonna give us access to the code that we need to modify in order to add business logic to our lambda function so you can like poke through the files here and see what's going on a little bit there's a couple configuration files there's tag files a whole bunch of things here that don't really matter at the end of the day you may have to come here and dig through stuff on occasion but for all intensive purposes you don't really need to care right now all right so let's move on to the next step now which is to actually add our api so i'm going to type in amplify add api and this is going to load up a wizard now that's going to prompt us with a whole bunch of questions with regards to our api so the first question is to please select from one of the below mentioned services we want to use graphql or rest for our backend so if you want to use graphql you're going to be using aws appsync that's the service name that the graphql is hosted on that's a little bit beyond the scope of this tutorial i want to use rest in this example that's going to allow us to use api gateway and a lambda function it's just a lot simpler when getting started with the graphql stuff you know you need to know graphql first of all then it generates a lot of extra boilerplate that you need to sift through so i'm just going to start with rest and then we can build off that maybe i'll do graphql in a different video so i'm pressing enter now with rest selected and now it's asking us to provide a friendly name for your resource to be used as a label for this category in this project i'm just going to leave this as default it's just putting together a random string there so we're going to press enter now the next thing we need to specify a particular option now it's asking us for the path of the rest api that we want to create so the one that i want to create is slash customers and then we're going to use open close squigglies and inside of that we're going to say customer id and so this is going to be our rest endpoint for customers so whenever someone passes in a integer or a value after the second slash there after customers we're going to basically query for that customer id in our database we're not going to set up a database now but that's what's going to happen at the end of the day all right so go ahead and press enter now and then it's asking us to choose a lambda source i want to create a new lambda function to host our api and then it's asking us to provide a friendly name pure resource to be used as a label for this category in this project so i'm going to leave this as default as well and then it's going to provide the aws lambda function name this i want to specify because i want to go and poke at the lambda function a little bit later just to see what it's doing so i'm going to call this customer handler and now it's asking us for the language of choice that we want to use like i said in the beginning we're going to be using node.js for this backend okay so now we it gives you a couple different options here of the templates that you want to use um i would suggest just starting out for the first time using hello world if you use the crud function for dynamodb again a lot of extra stuff is going to be provisioned it's just going to confuse you i don't suggest starting with that lambda trigger this probably uses some kind of event to trigger the lambda function and serverless express.js i'm not really sure what this even does so i'm just going to start off with hello world just to set the context of how everything works how it's all wired together then you can come back here later and experiment with some of these other ones all right so selecting hello world and then do you want to access other resources in this project from your lambda function let's say no for now that can change later and we can modify this later if we want to so pressing n for no do you want to invoke this function on a recurring schedule if you want to use cloudwatch events to basically invoke this function every minute or every five minutes or every hour every day or at a particular time of the day every day then you would press yes here but i don't want to do that so i'm going to press no and move on to the next step do you want to configure lambda layers for this function lambda layers allow you to easily add new dependencies that you can share among your lambda functions especially if they're very large dependencies like machine learning stuff like pi torch or even like pandas if you're into data engineering i'm going to press n here for no just to keep this simple and you want to edit the local lambda function now you can press yes here if you want but we're going to do this anyway so i'm just going to skip this and show you where the code is located so we can run through it step by step so i'm going to press no for now and it just gave us a bunch of different texts here to read through if you want i'm going to go over some of this later so don't worry about it it's asking us now if we want to restrict api access no we want to be able to call this um from the internet so let's just leave this as n for now do you want to add another path no and we're pretty much done now it's giving us a preview of what the next steps will be but let's just take a look at what we actually did so i'm going to clear that up now if you look at our code structure now you can see some interesting things happened before in the backend folder we only had like these different metadata files that were located here now we have two different things we have a folder for apis and this is well this is the the name of our api it's this random string here and there's some details here in terms of like configuration as well you can go through this but it doesn't really matter this is just basically a reflection of what we just configured in our wizard so i'm going to close these out but the thing that is important if i can close these correctly minimize that is inside the function folder and this is where all the code is going to be for your lambda function so if you go to function and then you go to the source folder you should see in index.js this is going to be your code that's going to be passed off and deployed into aws with lambda in addition to that you can see there's an event.json file that's located here as well so if you want to pass in custom input into your lambda function while you're testing let's say you want to test this on local before you publish it out into the cloud you can put some extra data in here to simulate what your lambda function will take as input and then you can run this locally so it's a really handy feature for you to kind of test everything out before you actually deploy to be confident that everything is working correctly all right so what i want to do now is i want to go ahead and modify that index.js file so i'm going to remove everything here and i'm just going to drop in some code that i've already written for us and we can take a look at what's going on here let me lower my terminal here to make more room okay cool so we just have a basic handler here and we're just taking an event as input i'm just console logging the event this is always a good idea by the way because it's really useful for testing especially when you're first setting up a lambda function often you want to extract certain parameters or certain fields from the input events so it's useful to just log this out and this is going to go into cloudwatch where you can take a look at it later on the next thing that we're doing is we're setting a constant a customer id and we're we're looking at the event that was passed in now within that event object is something called path parameters and then there's going to be something within that called customer id now remember our lambda function uh sorry our api gateway function the input was slash customers and then inside the squiggly brackets was customer id so what this is going to allow us to do is like our api looked like this right so what is yeah there we go um so our api looked like this it was slash customers and then slash some value and this value this thing right here the one that's going to be mapped to the the name or the field customer id so customer id in this case if we were to pass in like or call this api with this setting here with this input the customer id would be equal to one here so that's what's going on and we may take a look at what the input object looks like a little bit later but that's why it's important to log out the event on the first line because it's going to help you understand what's inside that object and be able to pull out exactly what you need now the next thing that we're doing is like normally i would call a back end to say like this is my customer id select from database where customer id is equal to 1 in this case but i'm not going to do that for right now i'm just going to return a hard coded response so i'm just going to create a object called customer we're going to just give back the customer id that we just got so customer id 1 in the previous example and then we have a customer name field and then i'm just saying customer plus customer id so this would be customer one under the customer name key and then from there we are just returning a response so we're gonna do status code 200 and you also want to uncomment the lines here you can see this comment here so uncomment below to enable course requests so you're going to want to do this because in a later step we're going to be going back and running this again on local and it won't work unless you have cores enabled so just keep that in mind make sure you uncomment these four lines here all under the header section and then from there for the body we're just passing in this input object up here and we're just stringifying it so that it's in a nice pretty format and then finally we're just returning this response object all the way back to the caller and the caller should get everything that you see here all right so now what we can do is we can just type in amplify actually make sure you save that or else this will not go well you can just type in amplify push and this should give you a little bit of a preview of what aws or what amplify is going to deploy to aws rather once this thing wakes up and so what is it telling us here so it's saying we have a function called this thing and we're going to create it and then we have an api called this thing and then we're going to create it as well so just to give you an idea of what's happening amplify is looking at what we have on local like we added that api through the console right amplify add api but we haven't actually reflected that in the aws cloud yet this is all just sitting on local now in order to take what we have on local and deploy that up into the cloud we need to run that amplify push command and that's what basically we're seeing here we're seeing a diff between what we have on local and what exists on the cloud so i'm going to just type in y now for yes and the same thing as last time is going to happen you're going to see a whole bunch of stuff streaming down our screen here and cloud formation is going to be updated and a whole bunch of other things are going to be updated in the amplify section as well which we're going to take a look at pretty quickly so you can see here updating progress authoral function blah blah blah let's just let this do its thing for a little while and i want to go and take a look at what is happening now in cloud formation so let's go back to cloud formation cloud formation cloud formation there we go click on that guy come on let's go sometimes it's a little bit buggy i don't know why okay let's try this way going here and cloud formation is the console that okay there we go that was bizarre that took way too long all right so now what is actually happening now so we have two different stacks this was the original one that we created from the beginning and now we have something called a nested stack now it turns out that this thing here is the parent so this is the top level stack and below that is the api stack that we just created and so this is like a little bit going into the weeds of how cloudformation works you can have you have these things called stacks and stacks are just logical namespaces that contain all of the things that you're trying to create and you can separate them out into different stacks if you really want and then within one stack like a top level stack like the one that we have here this can be for like a whole project and then you can build nested stacks within that one nested stack for an api one for a database one for authentication yada yada yada so that's what's happening here um amplify is creating a nested stack now that's going to contain all of our api and lambda function resources so if i just refresh here okay so everything was successful that's great so let's click on it it actually created two i'm just trying to take a look to understand so one was for the api and one was for was for the function so you can see that it's not really clear it's got the the name function in there and then it's got the name api in there so that's how you differentiate between the two so let's just click on the function one really quick to take a look at what it did again we can go to events if we want to see exactly what happened so it was creating the execution policy it's creating a function it was creating a role these are all the updates that occurred on it going back to the top for resources and you can see here we created a couple things an iam role for the lambda function the lambda function itself and then a policy that's going to give us permissions to do what we need to do and then if we go back now and just check out that other one for api api this should have some api gateway details in it so let's just go to resources and you can see if you expand this we did an api gateway deployment we created a rest api and we added our lambda functions permission to be invoked as a result of that rest api being invoked so that's kind of what happened here behind the scenes to give you a better idea of what cloudformation is actually doing with amplify and again if we go back now into amplify i'm not going to do this every time but this just kind of gives you a good idea of what is happening if we go into this now and we click on dev actually yeah you can see here there's two different categories that are added we create a function and an api you can click on these if you want i'm just going to go into api and actually that's wrong let's let's go back here api and i thought it would give you a little bit more information here it's a shame that it doesn't let's try to go to functions and see if it gives you anything yeah so it tells you um kind of what is going on or logs for your function rather so you see this is just some login information not very useful to be honest i wouldn't suggest using this to come and take a look at what's happening with the lambda function itself i would just go to the lambda section of the console to take a look so the way that you can do that is just go to lambda and now we should see a customer handler function that we just created so let me just filter here customer and then it's got the environment remember our environment that we set up initially with the project was dev that's what we have set up here and if we click on this now and you look at the code this was the code that we previously just modified right you remember i was talking about that customer stuff and json stringify with a customer so you can see how this all wires together now these resources are being created behind the scenes on behalf of you through aws cloudformation via amplify all right so that's it for kind of the rundown of what is happening behind the scenes let's go back to our code now and see where this all left off all right so if we look at the bottom here we can see now our rest api endpoint is now available so this is where our rest api is hosted so if we click this we should be able to invoke our function or so you would think and i'm going to show you why that's not the case so i'm just going to click this or control click there we go and you see here if i expand this out missing authentication token oh no we did something terribly wrong that's not the case actually i'm just kidding now the reason that it's showing us the missing authentication token is because we have not hit the correct url we've just hit the environment url the dev url so what we need to do is do slash customers and then remember we need to pass in that customer id now so let's pass in customer id one and if you remember what should happen right now is that we should get a return object that says customer id one and then customer name should be customer one so you can press enter now and you can see that's exactly what's happening we're getting a response from our lambda function end to end and now you can do like customer id too and you can see it's it's changing every time now ideally you would call a database here to do all this stuff but you know not for this example maybe for another video that's how it all fits together now just to summarize really quick so we we created an amplify project we added an api we coded up our function with a very primitive implementation we pushed our function to aws through the amplify cli we got a url and now we are testing that url because this is a get api this is going to work but if it was a post i'd have to do this like through postman or some other way to put the content in the body all right so that's all you need for now now one thing before we leave off because some people lose this url unfortunately and don't know how to get it back so let me just show you really quick how to do that so i'm back in my aws account let's go to api gateway and api gateway is here and so this is the api that we just created it's got the funky name clicking on this and now i believe if you go to stages if i'm not mistaken dev yeah stage is dev and then you can see the invoke url up here so this is the same url that we just used to to query but this is how you can recover it in case you forgot to copy it forget to paste it yadda yadda yadda this is an easy way to recover all right so let's go back to our terminal now and proceed to the next step now before we do that i just want to show you a quick little way to test your function out locally so you can type in the command amplify mock function let me just move my mouse for you there and then just put in the function name so mine was called customer handler now this isn't going to work because what's going to happen is that it's going to try and read the event json which is this format this doesn't have customer id in it or that what did i code it up it doesn't have path parameters either so this is going to error out but if you wanted to test this out to try it and see how it works and maybe you can fix it up to pass in the correct format for the event.json this is how you would test it out to make sure um and of course this is giving me some kind of error for some reason uh you know why because i need to pass in this technically the function name or the function tag is this value here i don't think i can copy can i copy that is that gonna work no this isn't gonna work is it oh my god is everything crashing okay i don't know we're not gonna do that but if you wanted to get this to work then you would just replace customer handler with this guy here and this would all work just fine so let's clear all this and let's move on now to the next step all right so our next step is to install the dependencies that are needed to call our endpoint from our react application on the front end so we've created our back-end we have our api it's all set up now we just need to install a bunch of ui toolkits that integrate with react so that we can do things like call our rest api very easily if you were doing other things like adding authorization or authentication with cognito which is another feature of amplify you would get like all the widgets that are built in with react and you can just import them and use them but it turns out in order to call our api on the back end there's a very handy library that you can use that's provided by aws amplify so that's what i want to do so i'm going to type in the command mpm install and we're going to say aws amplify amplify and we're going to say aws dash amplify slash ui dash react and hopefully this doesn't take too long but again i'll fast forward it if it does alright guys so that took a year once again but everything did finally finish what we need to do now is we need to go and modify our react.js code so i'm just going to close out this stuff here and just minimize some of our back-end stuff going on so if you recall our react js code is located under the source subdirectory so first of all let's go into the index.js file and i just want to import some essential things that we need to get that react ui library or that amplify ui library into our project so i'm just going to come here and drop in some imports here so we're importing amplify from aws amplify aws exports and we're just calling this default configure command you can read up on what these things do on your own time but they're just getting all of our assets into our project all right so next what we want to do is we want to go over to our app.js file and let me actually just lower this terminal it's way too large so this just it does basically nothing special here this project file so i'm going to remove everything here let's delete all of this stuff i'm going to paste in this large block of code that i'm going to run you through and i'm going to be making this code available by the way so don't worry about having to copy it down or anything like that i'm going to put a gist where this link is available and so you can play with this on your own time all right so let me explain what's going on here so first of all at the top we're just doing some imports keep in mind we're importing this thing called api this is basically an easy way for us to perform rest requests against our api gateway endpoint it handles a lot of the the configuration for us and you'll see what i mean in a minute here and we're just importing some react state stuff as well now we're first of all we're setting a constant to some value here and this is basically the name of the api i had a previous value there that was just from my clipboard that was from my previous example but we need to find the right value for this so in order for us i just want to pause there so that we can get the right value now this is the name of the api that we accepted as auto complete when we were running the mpm ad api wizard so in order to find out what the right value is here you need to go to your project under the amplify subfolder and you need to go to back end you need to go to api and you can see it's right here it's in the name and i'm sure that this name is somewhere else in these configuration files but this is just where i found it first so i'm just going to copy mine out so it's called api ddc9af89 i wish i named that better in the beginning but you know live and learn the next thing we have here is a reference to our path which in this case is customers and then i'm doing some react.js stuff here so let's just go to the bottom where the ui or the render function is and explain what's happening so this is a super simple react app it's basically got a input field that asks for a customer id and then it's got a button that is going to invoke this get customer function and this is where the the call to our back end is going to occur and then once we get that result we're going to just basically print all this stuff out in a nice easy to look at way so every time you click the button whatever input is in the input box it's going to trigger a invocation to our back end through that api and it's going to be added to a list so you can see all the stuff that's being returned that's basically it now if we go into the get customer api to take a look at what's going on here so we're just grabbing the customer id from the input box we're using that api get method and then we're passing in our api name that's what we had up here we're giving it the path which is slash customers we're adding a slash and then we're putting in the customer id and then after we get the response we're just logging it out we are creating a copy of new customers we're adding the response that we got from the back end to that array and then we're just updating state so that everything gets reflected on the ui so that's looking pretty good right now so let's just test all of this out so i'm just going to run i think it's npm run or npm start i can't remember what it was it's probably npm start and this should load up our dev server on local and once we confirm that we got this working we can actually deploy the front end up to the cloud as well by following a subsequent command line function so again i don't know for some reason on my machine this takes a little while to start the dev server so i'll fast forward this really quick for you all right guys so here is our super simple react app now before i test everything out and prove to you that this is working let's just open up our dev console let's just put this on the bottom since i'm not a savage okay go to our network tab and we're going to be able to see all of our api calls here all right so let's put in some values here so let's just put in foo bar and call customer from the back end you can see we got a response it's got foobar which is what we passed in then we got customer foobar and if we look now if i can manage to make this bigger somehow how do i do this we'll just go like this there we go so we got foobar there and you can see that this is the request that got made so we're calling that endpoint with customersfubar and we got a response back so you can put in a whole bunch of different values in here so customer one customer two customer three this is how you get your simple application up and running very quickly using amplify and react now this is all running off local remember this isn't good enough so this isn't on the cloud at least our react app that is our back end is on the cloud but our front end is not now in order to get that working we still have some work to do so let's go back to our console now or terminal rather control c to kill the project and no and let's just run some additional commands now to launch this all the way up to the cloud so just going to clear that up what we need to do now is amplify add hosting and this is going to allow us to host it through the amplify console pressing enter there should ask us a couple questions so select the plugin module to execute first option is to host with the amplify console which is managed hosting with custom domains continuous deployment the other option is with cloud front and s3 i'm going to use the first option for now this is by far the simplest the second one is more optimized allows you to use cloudfront which is a regional edge cache with your asset files located in s3 but it's a little bit more complicated so let's just stick with the first one for now and then there should be a second option here if i'm not mistaken um is anything going to there we go all right so choose a type you can either pick continuous deployment if you want to source the project from a git repository using this approach the get a based approach anytime there's a change in your git repository it'll integrate so it'll redeploy your function code into the cloud so you don't have to do any manual deployments but that does require that you have your git repository set up and everything linked up together which i do not and if you do select this option it'll ask you a whole bunch of other questions as well so let's just select manual deployment for now and that should be pretty much it now all we need to do is commit to that again we're going to type amplify publish should give us a preview of what it is going to change or it'll just do it i can't even remember let's just wait and see here and we should be almost there all right yeah so it did give us a preview so you can see we're adding hosting we're just modifying our function and our api we're going to press y and we should see a brand new url that gets spit out that is custom for our project that we can share with users and they can interact with our application so let's just give this a second here all right guys so you can see here things finally finished and it spit out a url for us so i'm just going to command click on this so we can open it up in our browser and here you go so here's the new version of the application so this one is hosted on this url on the amplify app subdomain and you can see all of this stuff is going to work exactly the same as before still going to be calling our backend you can do this as many times as you want and just test things out so this should give you a pretty good starting point for your amplify application just one last thing before you go how to delete all this stuff if you want to tear all this stuff down really quick all you need to do is just type in amplify delete and this is going to tear down everything it's going to ask you some prompt questions here which you can add yes or no to and all of this stuff is going to be deleted for you with just a couple clicks so that's it for this video if you enjoyed this check out the other ones on the right for amplify and don't forget to like and subscribe i'll see you next time
Info
Channel: Be A Better Dev
Views: 2,860
Rating: undefined out of 5
Keywords: aws, aws simplified, awssimplified, programming, coding, cloud computing, software design, software engineer, software developer, software architecture, beabetterdev, be a better dev, be a better developer, system design, databases, aws cloud, aws tutorial, aws training, aws amplify fullstack, aws amplify react nodejs, aws amplify tutorial react, aws amplify tutorial, aws amplify, aws amplify react, aws amplify api, amazon amplify, amplify cli, amplify aws, amplify init
Id: T4MQrRDo20w
Channel Id: undefined
Length: 35min 59sec (2159 seconds)
Published: Mon Nov 15 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.