I really appreciate that you made a video with errors and fixed those errors in your video. That is far more important then making a clean video where everything goes fine. Half the people watching your video like myself are learning and to see that even those in the know get errors and have to work through them is good to see. So appreciate you keeping that in the video, kudos to you sir!
14:00 - Really great to see you receiving multiple errors one after another and then fixing it one by one - please do not edit out such step-by-step learnings from your videos and simply show the final ‘working code’ (as many instructors do).
yep, I like to leave mistakes, etc. in the videos because it helps illustrate real world development and how to go about solving problems as they come up.
I am on half way but this video is damn useful unlike some who advertise more and have less content. This is exactly the opposite of that .Very Impressive .
Thanks So Much for making a REALISTIC video of your process. It is such a relief to see someone go through the process of not doing it perfectly the try and going through the troubleshooting process. I learned so much. You are teaching us "How to Fish" instead of just giving us the fish to eat :-)
This is one of the best tutorials I have seen in a long time. It was candid and practical. It started with a very simple example that nevertheless showed most of the many setup details for lamdas. These details of setup are not obvious to the newcomer, but the tutorial explained them very clearly. Then it moved on to other very useful examples, like accessing a database also in AWS. Along the way, the author courageously showed, and then very well explained, what kind of mistakes python newbies like myself might make. Excellent.
Like most people here, am learning, specifically python and how to use it within AWS. This tied a whole bunch of tech and concepts together for me. Really appreciate this kind of sharing, with real-time errors. Thank you.
Concise and easy to understand, Thank you :) WARNING: for dynamoDB, make sure your table is created in the same region as your function. For some reason dynamoDB window defaulted to a different location. I had to recreate it in the same region.
Great tutorial, it's a nice getting started with aws-lambda, everything clear and awesome that you included error-fix process and not only the happy path, I think that was the best part of this video! Few recommendations: 1 - You might also use an example to re-use already existing role on different lambdas (it was implicitly, but still it helps new people on aws). 2 - Maybe the only one missing part was include a lambda with both services (dynamodb and s3) 3 - For putItem function, you could take it to explain how to make it dynamic instead of hardcoded using arguments. 4 - Sample of test different of the default one. Anyways those 4 points could be taken as next steps for audience to practice the learnings from this video. Again, great tutorial!
Thank you, thank you , thank you. I was looking for a beginners course in lambda and you did it. The errors in it were super helpful also as it helps with finding and resolving issues that I may have in the future. Keep up the good work and again.... thank you
I agree with the others. You leaving the errors in the video was super helpful to me. It really cleared up a lot of the questions I was having on permissions. Thank you so much!
I enjoyed troubleshooting which is unconventional content creation...sub'ed instantly. Looking forward to see more videos on Boto3/python and AWS combination. way to go.
I agree with the others, it's really good to see how you went about fixing those errors that popped up. I actually ran into that exact issue so it was really helpful to see the solution to what's probably a very common problem. Thanks for the quality upload!
10:49 - Is ‘statusCode’ and ‘body’ something that lambda expects that we return as part of every lambda function? Or are you returning it because in this instance you wanted to fetch/print/display the bucket list?
i think this is more of a REST convention than anything Lambda specific. although API Gateway does expect a format like this - see my Lambda - API Gateway integration video for more details.
General question on code version control. In this example, it looks like the actual python code is stored within the lambda console. However in projects i’ve been working on, we store all the source code in a purpose built Version Control System (VCS) such as Github or BitBucket etc. In the AWS world, I understand the equivalent to be CodeCommit. Can Lambda be made to fetch /refer the code from CodeCommit? (Instead of the code sitting inside a lambda function directly where there is a risk of losing the code if the lambda function gets deleted). How do you recommend storing/versioning/referencing source code in a lambda/AWS context?Thanks.
great question. i don't do any kind of organizing within the AWS console itself but I do store all of my lambdas in GitHub, the same way I would any other project. as far as fetching the code from GitHub and applying directly to AWS Lambda - I haven't explored that yet. i can possibly look into that and queue it up for a video as time permitts.
Dude, best tutorial ever. I have found several of them where they just talk and talk and the tutorial takes 40 - 60 minutes. I mean... why! yours instead... it was clear and straight to the point. Do you have a tutorial based on IAM? If not... it would be great if you could make one... thanks!
7:15 - Hi, does aws publish what python libraries are included by default? E.g. you mention that boto3 is included by default. How do we verify if any other library of our choice is included by default? Also, if a library that we like is not included by default, how does one make that available for the lambda function to use? (E.g. in desktop IDEs i think you can download the libraries and add it to PATH or something......?)
boto3 is an AWS SDK for Python. all AWS SDKs and libraries are available in Lambda and elsewhere. other 3rd party libraries are not included. if you want to include external lbraries you would have to archive your project in a zip file and upload it to Lambda like that.
9:20 Also - how do you know that you had to use s3.buckets.all() ? I.e. from line 4, i understood that “s3” was a variable. But how did you come to learn/know that you then had to specify “.buckets.all” after that to get the list of all buckets?
hi Aravind. I got all of that by reading the AWS boto3 documentation which can be found here: boto3.amazonaws.com/v1/documentation/api/latest/reference/core/collections.html
Thank you it was perfect! I realized whenever you get errors and you see your code looks fine, you just need to go back and save your code again, and it will work fine! I think there is a delay for aws to execute code in lambda.
22:00 I used the following bit of code so that I could just append the dynamodb code to the existing lambda function to list all the s3 buckets AND run the dynamodb query, so both bits of code run in the same lambda function. bucket_list.append(table.get_item( Key={ 'id': 'mercury' } ))
Hi, question around organizing (visually grouping lambda functions - lets say over a period of multiple weeks or months you have been continuously developing lambda functions - wont the lambda functions UI get cluttered? I.e. how does one organize lambda functions into a “folder” or even a “common program” in the AWS Console for Lamdba?
see my other answer below - i don't see a way within the AWS Lambda console to organize by folder, but I effectively do this in GitHub - I'll save project-related lambdas in separate repos for organizational purposes - here's an example: github.com/jspruance/hexal-lambda-functions
Cloud Path Ok thanks. It does seem like an extra step to push code into github and then copy paste into lambda code editor IDE. I think aws should find a way to integrate codecommit with lambda such that code changes pushed into codecommit are immediately available in lambda (if the developer so chooses),
Excellent tutorial. But there is a question. In the code I have seen we are importing json library through "import json", but we are not using any method out of it. So, is there any need to import json library in the code ?
Very good. I like your teaching style, where you troubleshoot basic errors without editing them out. Do you have any videos on how to import external libraries from python into lambda?
Hi, could you pls explain what are the “event” and “context” for? Are they incoming parameters into the function and if so of what use are they? Are they mandatory to be defined in each and every lambda function?
thanks. yes, I have a few new ones in flight right now. i am also working 2 jobs at the moment so it's been a challenge to find enough time for making RUclips tutorials. hopefully I'll be able to pick up the pace soon : )
Hi, great video. What resources do you recommend for learning python for a complete beginner to programming (no prior JavaScript experience)? (Ones that you used yourself). Please do more such videos on python+lambda combination.
i used a lot of different online resources to learn Python - too many to list. but a combination of found tutorials after Googling Python and also here on RUclips. i will be making more Python videos in the future - stay tuned!
Hello, Can the function definition be altered? In other words can you execute your own custom function or does it need to match what AWS has provided? Just as an example, can this be coded in as below? (Meaning, I changed the paramaters) def lambda_handler(a, b, c): # TODO implement return a+b*c }
Very nice video, especially explaining the errors! Do you have any reference (document or video) for working with Lambda and EC2? I have tried using basic Lambda functions such as describe.ec2 and so on but I am not sure what I should setup as Trigger in the AWS Console?
Awesome tutorial! I recently started learning AWS, and I will need to combine it with Python, so this really helped. I am just curious why do have to pass event and context every time, if we're not using it? Also, do we must return a dict with statusCode and body, why we just don't return the content?
I really appreciate that you made a video with errors and fixed those errors in your video. That is far more important then making a clean video where everything goes fine. Half the people watching your video like myself are learning and to see that even those in the know get errors and have to work through them is good to see. So appreciate you keeping that in the video, kudos to you sir!
exactly !
14:00 - Really great to see you receiving multiple errors one after another and then fixing it one by one - please do not edit out such step-by-step learnings from your videos and simply show the final ‘working code’ (as many instructors do).
yep, I like to leave mistakes, etc. in the videos because it helps illustrate real world development and how to go about solving problems as they come up.
Exactly...well agreed!
Very true. Those errors getting fixed as you watch is really the way to go since learners will most likely run into the same errors.
@@BlockExplorerMedia Yup, very helpful, thanks!
The best instructions on lamda and Python
As everyone is saying here, love that you have left in all the errors you encountered and worked through them. Troubleshooting 101. Great job mate!
I really loved this video with errors and fixes. Its 1000% times better than an usual video with no errors. As a developer, I really love it.
I am on half way but this video is damn useful unlike some who advertise more and have less content. This is exactly the opposite of that .Very Impressive .
That's a very easy and simplest way to explain any beginner, thanks for making such videos.
Thanks So Much for making a REALISTIC video of your process. It is such a relief to see someone go through the process of not doing it perfectly the try and going through the troubleshooting process. I learned so much. You are teaching us "How to Fish" instead of just giving us the fish to eat :-)
Highly satisfied with the demo in a simple and clean way
This is one of the best tutorials I have seen in a long time. It was candid and practical. It started with a very simple example that nevertheless showed most of the many setup details for lamdas. These details of setup are not obvious to the newcomer, but the tutorial explained them very clearly. Then it moved on to other very useful examples, like accessing a database also in AWS. Along the way, the author courageously showed, and then very well explained, what kind of mistakes python newbies like myself might make. Excellent.
Like most people here, am learning, specifically python and how to use it within AWS. This tied a whole bunch of tech and concepts together for me. Really appreciate this kind of sharing, with real-time errors. Thank you.
Concise and easy to understand, Thank you :)
WARNING: for dynamoDB, make sure your table is created in the same region as your function. For some reason dynamoDB window defaulted to a different location. I had to recreate it in the same region.
Thank you for this video, for the first time now, i am starting to understand where/how lambda can be used. 👍
Excellent video, thanks much for keeping the errors in the video and showing how you fixed them.
Amazing tutorial for a complete noob like me. I love how raw this video is.
Thanks Trevor. Yeah most my videos are on the raw side and rough around the edges lol glad to hear that's a good thing!
This is a wonderful video, i learned a lot, I love it. I also like that you had errors and fixed them. Thank you very much for your efforts.
Thank you for uploading this tutorial. This has given me the confidence to go forth and learn python by creating lambda functions!
Thank you, I appreciate this video. Introduced me to Lambda in an easy to understand manner.
Really Great demonstration with Lambda Function. Thank you so much.
Great tutorial, it's a nice getting started with aws-lambda, everything clear and awesome that you included error-fix process and not only the happy path, I think that was the best part of this video!
Few recommendations:
1 - You might also use an example to re-use already existing role on different lambdas (it was implicitly, but still it helps new people on aws).
2 - Maybe the only one missing part was include a lambda with both services (dynamodb and s3)
3 - For putItem function, you could take it to explain how to make it dynamic instead of hardcoded using arguments.
4 - Sample of test different of the default one.
Anyways those 4 points could be taken as next steps for audience to practice the learnings from this video.
Again, great tutorial!
hi Cesar - thanks a lot for the feedback. i hope to do some new aws tutorials soon and will integrate your suggestions.
Thank you, thank you , thank you. I was looking for a beginners course in lambda and you did it. The errors in it were super helpful also as it helps with finding and resolving issues that I may have in the future. Keep up the good work and again.... thank you
Agree with comments here that keeping and explaining the errors in this tutorial adds much educational value.
I agree with the others. You leaving the errors in the video was super helpful to me. It really cleared up a lot of the questions I was having on permissions. Thank you so much!
just because of this video i'm subscribing your channel.. great work.
I enjoyed troubleshooting which is unconventional content creation...sub'ed instantly. Looking forward to see more videos on Boto3/python and AWS combination. way to go.
Cheers .. my troubleshooting skills got better due to this video😁
And literally this video is informative 👍..thanks
Excellent tutorial and I appreciate your honesty in showing us your errors and how you fixed them. That enhances the learner's experience. :)
Pure gold, hope we can get more content from you
I like your style wherein you encounter issues and solve them on the fly. Thank you..
Liked the way you are teaching and resolving errors on the go.
Excellent session. Very helpful. I have done everything along with you and learnt a lot. Thank you so much
Thanks for this tutorial! Ive tried many nodejs but python makes my life easier with this tut!
Subbed, a good and honest walk through. Really helped me with Lambdas thanks :)
I agree with the others, it's really good to see how you went about fixing those errors that popped up. I actually ran into that exact issue so it was really helpful to see the solution to what's probably a very common problem. Thanks for the quality upload!
@Cloud Path, Very nice, step-by-step explanation without any mindless cliche typical of the industry. Thank you and please keep up the good work.
Really good explanation , I wanted to learn how coding actually works in a cloud this was awesome.
Very nice tutorial! Non-sarcastic comment: your tiny hiccups made this EXCELLENT because you showed us how to locate errors.
excellent course with super explanation.
Excellent Video. I'm waiting for new videos on AWS Lambda with python
Thanks for the instruction. I appreciated it very much. BTW, in relation to the last example, string worked for me.
Congratulations, a natural and great tutorial, you make it seem simple, thakyou
i needed in python...thnakssss a lott
10:49 - Is ‘statusCode’ and ‘body’ something that lambda expects that we return as part of every lambda function? Or are you returning it because in this instance you wanted to fetch/print/display the bucket list?
i think this is more of a REST convention than anything Lambda specific. although API Gateway does expect a format like this - see my Lambda - API Gateway integration video for more details.
Jonathan Spruance Thank you.
General question on code version control. In this example, it looks like the actual python code is stored within the lambda console. However in projects i’ve been working on, we store all the source code in a purpose built Version Control System (VCS) such as Github or BitBucket etc. In the AWS world, I understand the equivalent to be CodeCommit. Can Lambda be made to fetch /refer the code from CodeCommit? (Instead of the code sitting inside a lambda function directly where there is a risk of losing the code if the lambda function gets deleted). How do you recommend storing/versioning/referencing source code in a lambda/AWS context?Thanks.
great question. i don't do any kind of organizing within the AWS console itself but I do store all of my lambdas in GitHub, the same way I would any other project. as far as fetching the code from GitHub and applying directly to AWS Lambda - I haven't explored that yet. i can possibly look into that and queue it up for a video as time permitts.
Wonderful explanation with grate control over the code , keep it up!
Definitely a good tutorial including debugging stuff, Keep up good work.,
Dude, best tutorial ever. I have found several of them where they just talk and talk and the tutorial takes 40 - 60 minutes. I mean... why! yours instead... it was clear and straight to the point. Do you have a tutorial based on IAM? If not... it would be great if you could make one... thanks!
Thanks Andres, glad you found it useful! I have been thinking about doing one on IAM...it's definitely on my list.
7:15 - Hi, does aws publish what python libraries are included by default? E.g. you mention that boto3 is included by default. How do we verify if any other library of our choice is included by default? Also, if a library that we like is not included by default, how does one make that available for the lambda function to use? (E.g. in desktop IDEs i think you can download the libraries and add it to PATH or something......?)
boto3 is an AWS SDK for Python. all AWS SDKs and libraries are available in Lambda and elsewhere. other 3rd party libraries are not included. if you want to include external lbraries you would have to archive your project in a zip file and upload it to Lambda like that.
9:20 Also - how do you know that you had to use s3.buckets.all() ? I.e. from line 4, i understood that “s3” was a variable. But how did you come to learn/know that you then had to specify “.buckets.all” after that to get the list of all buckets?
hi Aravind. I got all of that by reading the AWS boto3 documentation which can be found here: boto3.amazonaws.com/v1/documentation/api/latest/reference/core/collections.html
Jonathan Spruance Brilliant thank you.
Great video, I enjoyed seeing you make mistakes and how you resolved them!
Those errors were really helpful! Thanks for a great video!
It's really helpful for beginners ...thanks 👍
Thank you for your video.
It's really cool that we can see how you solve errors. :)
Thanks Dawid!
this was cool thanks even though i have a bit of experience but i still appreciate your work
Thank you it was perfect! I realized whenever you get errors and you see your code looks fine, you just need to go back and save your code again, and it will work fine! I think there is a delay for aws to execute code in lambda.
Really clear demonstrations; thank you!
Great video, really helpful! I’ll use this to get my own serverless Python web app up and running. Thanks!
did you?
I see you haven't posted in a year. Hope you have plans to produce more videos in the future. You are an important resource please don't stop
Exactly what I was looking for. Brilliant video!! Liked, subscribed :)
22:00 I used the following bit of code so that I could just append the dynamodb code to the existing lambda function to list all the s3 buckets AND run the dynamodb query, so both bits of code run in the same lambda function.
bucket_list.append(table.get_item(
Key={
'id': 'mercury'
}
))
Great job...keep up the good work. It was really helpful. Your content was very good.
Really liked the video! As a side note, I wouldn't focus so much on zooming in and out. So long as your resolution is good, we can see it.
thanks! appreciate the feedback
Super thanks for wonderful lambda lab
Thank you so much for such a great explanation step by step
Great tutorial! Thanks, bro
Decent walkthrough of Lamdba. Would appreciate explanations of the components of Lamdba though, i.e., handlers, context, events...
Really enjoyed... Nice explanation
Awesome video , please upload more videos on Lambda with Python
Great stuff Man. Thanks for uploading.
Awesome tutorial. Thank you!
Awesome tutorial. Thank you! :)
You are awesome. Keep up the good work
beautiful and fun tutorial! thanks sir
Great video, thanks for sharing
Hi, question around organizing (visually grouping lambda functions - lets say over a period of multiple weeks or months you have been continuously developing lambda functions - wont the lambda functions UI get cluttered? I.e. how does one organize lambda functions into a “folder” or even a “common program” in the AWS Console for Lamdba?
see my other answer below - i don't see a way within the AWS Lambda console to organize by folder, but I effectively do this in GitHub - I'll save project-related lambdas in separate repos for organizational purposes - here's an example: github.com/jspruance/hexal-lambda-functions
Cloud Path Ok thanks. It does seem like an extra step to push code into github and then copy paste into lambda code editor IDE. I think aws should find a way to integrate codecommit with lambda such that code changes pushed into codecommit are immediately available in lambda (if the developer so chooses),
Excellent tutorial. But there is a question. In the code I have seen we are importing json library through "import json", but we are not using any method out of it. So, is there any need to import json library in the code ?
Really its great explanation error with solution.
very good tutorial! Thank you very much!
Nice video:)
Fantastic 👍
Very good. I like your teaching style, where you troubleshoot basic errors without editing them out. Do you have any videos on how to import external libraries from python into lambda?
Bro you are great.
Thank you for this.really helped me.
please upload new videos
Hi, could you pls explain what are the “event” and “context” for? Are they incoming parameters into the function and if so of what use are they? Are they mandatory to be defined in each and every lambda function?
please see: ruclips.net/video/ijyeE-pXFk0/видео.html
Jonathan Spruance Thank you
EXCELLENT VIDEO! Thank you!
Hi, how to deal with Conda environment ? is it possible to include it in the lambda function?
Please continue doing videos with pyton. Thaknx👍🏻
Thank you it was very useful
Excellent! Thank you!
great video !! Thank you. Good troublehsooting
awesome video! I hope you are going to make some more?
thanks. yes, I have a few new ones in flight right now. i am also working 2 jobs at the moment so it's been a challenge to find enough time for making RUclips tutorials. hopefully I'll be able to pick up the pace soon : )
Hi, great video. What resources do you recommend for learning python for a complete beginner to programming (no prior JavaScript experience)? (Ones that you used yourself). Please do more such videos on python+lambda combination.
i used a lot of different online resources to learn Python - too many to list. but a combination of found tutorials after Googling Python and also here on RUclips. i will be making more Python videos in the future - stay tuned!
Mosh
Hello,
Can the function definition be altered? In other words can you execute your own custom function or does it need to match what AWS has provided? Just as an example, can this be coded in as below? (Meaning, I changed the paramaters)
def lambda_handler(a, b, c):
# TODO implement
return a+b*c
}
all these we can perform under free tier , or these costs to aws account ??
Good one. Please add more complex Lambda functions for some realistic application or based on something microservices in Python.
nice tutorial guy. :) I would like see this work with scala . :)
Thank you so much for this!!
great video, thanks
Very nice video, especially explaining the errors! Do you have any reference (document or video) for working with Lambda and EC2? I have tried using basic Lambda functions such as describe.ec2 and so on but I am not sure what I should setup as Trigger in the AWS Console?
Pretty cool - thanks!
Awesome tutorial! I recently started learning AWS, and I will need to combine it with Python, so this really helped. I am just curious why do have to pass event and context every time, if we're not using it? Also, do we must return a dict with statusCode and body, why we just don't return the content?