For quick debugging, I suggest using sls invoke local. This will not use the AWS Lambda role, but will use AWS credentials if they are available in your env.
If I'm having trouble with AWS roles or permissions, I suggest using sls invoke.
You can pass a JSON body to both sls invoke and sls invoke local:
sls invoke -f myFunctionName -d '{"Records":[{"messageId":"059f36b4-87a3-44ab-83d2-661975830a7d","receiptHandle":"AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...","body":"{\"functionArn\": \"arn:aws:lambda:us-west-2:377024778620:function:my-function-name\"}","attributes":{"ApproximateReceiveCount":"1","SentTimestamp":"1545082649183","SenderId":"AIDAIENQZJOLO23YVJ4VO","ApproximateFirstReceiveTimestamp":"1545082649185"},"messageAttributes":{},"md5OfBody":"098f6bcd4621d373cade4e832627b4f6","eventSource":"aws:sqs","eventSourceARN":"arn:aws:sqs:us-east-2:123456789012:my-queue","awsRegion":"us-east-2"}]}'
I use sls generate-eventto create various bodies for different AWS services:
sls generate-event -t aws:sqs -b '{"functionArn": "arn:aws:lambda:us-east-1:123456:function:ci-service-fakeError"}'
And then pipe the output of that into the input of sls invoke