Skip to content
/ taskbox Public

任务盒子 Another Personal task solution 个人定时任务框架(基于AWS lambda)

License

Notifications You must be signed in to change notification settings

jneeee/taskbox

Repository files navigation

任务盒子 TaskBox

English

任务盒子(TaskBox,以下简称盒子)是一个运行在 Serverless 平台的个人定时任务框架。它注重稳定、性能和扩展性。基于 AWS Lambda + DynamoDB + S3 + APIGW + EventBridge scheduler 编写。

deploytoaws

📦项目主页 📦演示地址

它有如下特点:

  • 全免费,利用 AWS 给开发者的永久免费额度 🎉 (不做保证)
  • 简单部署。基于 AWS SAM 应用模板,能自动的绝不手动。
  • Web 任务列表。支持任务增删改查,可绑定个人域名。
  • 简单的登录鉴权功能,并利用 AWS Api-Gateway 做了访问安全限制,狠狠防住暴力破解!
  • 配置、任务周期可在网页设置(不同任务支持自定义配置),任务cookie过期1秒钟更换!
  • 注重性能。无 web 框架(flask/bottle等),无冗余代码。并得益于 AWS 函数计算和数据库的高可用、高性能,网页冷启动时间 1s 内,后续网页请求基本在 5ms 内完成。不包含DynamoDB查询时延 10ms 以内
  • 提供了网页版的 Shell 和 Python 命令接口,临时使用不在话下。
  • 极具扩展性。任务插件化(Submodule 管理),根据贡献指南一分钟创建属于你的任务。还可在任务市场寻找丰富扩展求PR

2 如何使用

盒子通过 github action 实现向 AWS Lambda 的部署。为此需要在github action 配置你的 AWS 账户信息。按 AWS 的推荐,你可以创建一个用户组,并添加必要的权限 问题2

1、Fork 本仓库,并在你仓库的 setting -> Actions secrets 设置如下三个变量

AWS_ACCESS_KEY_ID 
AWS_SECRET_ACCESS_KEY
WEB_PASSWORD

前两个变量从你的 aws 账户获取,一般在这里设置,第三个是用来登录盒子的密码,现在鉴权方式比较简陋,所以推荐设置一个强密码

2、推送一个 commit 到 dev 分支触发自动部署到 AWS 之后从 AWS api-gateway控制台或者 github action 任务回显能够找到访问的api。

2023-3-16 20:12:28 部署完要去 S3 界面清空一下存储桶。后续会改成自动清除。

3 创建自己的任务

文档

快速更新中,欢迎 PR

About

任务盒子 Another Personal task solution 个人定时任务框架(基于AWS lambda)

Topics

Resources

License

Stars

Watchers

Forks