I'm getting the error "The role defined for the function cannot be assumed by Lambda" when I'm trying to create a lambda function with create-function command.

aws lambda create-function
  --region us-west-2
  --function-name HelloPython
  --zip-file fileb://hello_python.zip
  --role arn:aws:iam::my-acc-account-id:role/default
  --handler hello_python.my_handler
  --runtime python2.7
  --timeout 15
  --memory-size 512
I'm also encountering this error. Have not got a definitive answer (yet) but figured I'd pass along a couple of hints that may help you and/or anyone else hitting this problem.
A) If you build the Role ARN by putting together your account ID and role name, I think the account ID needs to be without any dashes
B) If you just created the role, and possibly added policies to it, there seems to be a (small) window of time in which the role will trigger this error. Sleeping 5 or 6 seconds between the last operation on the role and the create-function call allowed me to bypass the issue (but of course, the timing may be variable so this is at best a work-around).
The role defined for the function cannot be assumed by Lambda