There was a session at AWS Reinvent in 2015 that covered this exact topic, you can watch it here on youtube: https://www.youtube.com/watch?v=FhJxTIq81AU shows how to use lambda and cloudwatch to get that 1 minute frequency with no external dependencies.
Do you need to run an AWS Lambda function on a schedule, without an
event to trigger the invocation? This session shows how to use an
Amazon CloudWatch metric and CloudWatch alarms, Amazon SNS, and Lambda
so that Lambda triggers itself every minute—no external services
required! From here, other Lambda jobs can be scheduled in
crontab-like format, giving minute-level resolution to your Lambda
scheduled tasks. During the session, we build this functionality up
from scratch with a Lambda function, CloudWatch metric and alarms,
sample triggers, and tasks.
I suspect that at some point AWS will allow the 1 minute interval without using this method, but this may hold you over in the mean time.
The Cloudwatch metric and alarms based triggering mechanism isn't quite straight forward to setup and gets complicated when you have more than 1 Lambda requiring to be invoked every 1 minute. What I eventually ended up is
Create a new Lambda called "minute_trigger" which invokes every 5 minutes and
Set the timeout for Lambda to 5 minutes.
Within the lambda, sleep(60), and after sleep, invoke the Lambda(s) that you want.
from boto3 import client as bc
lambda_client = bc('lambda')
lambda_client.invoke(FunctionName=lambda_name, InvocationType='Event', Payload=msg)
Note, the "minute_trigger" should approximately cost 66$ per year as of today's pricing.
Also remember to give the "minute_trigger" lambda the appropriate role to invoke other lambdas.