thinkphp部署阿里云函数计算
阿里云的servless基本都是基于docker,需要配置cpu和内存,根据指标来做弹性伸缩,还是比较麻烦。
阿里云函数计算,基于代码块+运行环境,按执行资源收费,内部也是弹性伸缩,但运维人员完全无感。
1 开通阿里云函数计算
https://fc.console.aliyun.com/fc/applications/cn-shanghai
2 创建应用,选择php→Thinkphp框架
可以 使用示例代码包跑下demo,或者使用自己项目代码;
使用自己项目代码需要改造下代码,主要是代码目录为只读目录,需要把runtime设置到/tmp/目录
tp5设置示例:
namespace think; // ThinkPHP 引导文件 // 1. 加载基础文件 define('RUNTIME_PATH', '/tmp/'); require __DIR__ . '/base.php'; // 2. 执行应用 App::run()->send();
tp6设置示例:
namespace think; require __DIR__ . '/base.php';
$app = new App();
$app->setRuntimePath('/tmp/');
$http = ($app)->http;
$response = $http->run();
$response->send();
$http->send($response);
3 部署测试
使用wrk简单压测了下,性能还是可以的:
wrk -d 10 -t 100 -c 1000 http://61763311-1577904969934260.test.functioncompute.com/
本地6c16G mbp:
tp应用跑起来后会链接数据库,性能差异有部分是数据库原因。
4 代码更新
目前发现只能支持手动更新代码包,或者oss;希望后续改进,直接支持代码库最好
留言