It really depends how “local” you want… in my Lambda code, I try to have as much encapsulation of business logic as possible and write “unit tests” around those. I say unit because the simplest thing is for them to still connect to AWS and use the real services. Now, depending on the service, you could mock it out or, in the case of database, use a local database. I know there’s mock s3, but i haven’t used it.
But the essence is you can do a lot of development locally without the iteration of uploading/deploying the lambda code.
OTOH, if by “local” you might mean “local to an EC2 instance”, you would want to check out Cloud9 - it looks very interesting as it gives the local feel of lambda dev and debug, although on an EC2 instance, FBOW. Again, I haven’t used it personally, but high on my list to checkout.