无服务器-如何在AWS Lambda函数中定期运行Flask命令?
我正在使用以下serverless.yml文件来运行flask应用程序。我的flask应用程序有一个cli命令,我希望定期调用它 所以,yml文件应该执行两个任务,作为一个普通的wsgi应用程序执行api调用,并定期调用命令行函数 我应该在yml文件中对其做哪些更改无服务器-如何在AWS Lambda函数中定期运行Flask命令?,flask,aws-lambda,aws-serverless,Flask,Aws Lambda,Aws Serverless,我正在使用以下serverless.yml文件来运行flask应用程序。我的flask应用程序有一个cli命令,我希望定期调用它 所以,yml文件应该执行两个任务,作为一个普通的wsgi应用程序执行api调用,并定期调用命令行函数 我应该在yml文件中对其做哪些更改 functions: app: handler: wsgi.handler events: - http: ANY / - http: 'ANY {proxy+}' Serverless
functions:
app:
handler: wsgi.handler
events:
- http: ANY /
- http: 'ANY {proxy+}'
Serverless.yml
app = Flask(__name__)
user_cli = AppGroup('user')
@user_cli.command('create')
def create_user():
pass
app.cli.add_command(user_cli)
命令需要运行:“flask user create”,因为可能有多个lambda函数实例同时运行。是否要在所有实例上运行此命令,最可能的情况是,无论给定时间运行的lambda函数数量如何,都要运行此命令一次 由于您使用的是无服务器,因此支持编写类似cronjob的函数。以下是您需要遵循的步骤:
- 添加您希望函数
运行频率的计划create\u user
或functions: cronCreateUser: handler: app.create_user events: # At 00:00 on Sunday - schedule: cron(0 0 * * SUN)
create\u user
)create\u user
位于项目根目录中名为app.py
的文件中你好,Sameera,如果我的答案对你有用,请将其标记为“最佳答案”i.stack.imgur.com/QpogP.pngThanks mostafazh。它起作用了!
functions:
cronCreateUser:
handler: app.create_user
events:
# Every 1 hour
- schedule: rate(1 hour)