thinkphp部署阿裏雲函數計算
阿裏雲的servless基本都是基于docker,需要配置cpu和内存,根據指标來做彈性伸縮,還是比較麻煩。
阿裏雲函數計算,基于代碼塊+運行環境,按執行資源收費,内部也是彈性伸縮,但運維人員完全無感。
1 開通阿裏雲函數計算
https://fc.console.aliyun.com/fc/applications/cn-shanghai
2 創建應用(yòng),選擇php→Thinkphp框架
可(kě)以 使用(yòng)示例代碼包跑下demo,或者使用(yòng)自己項目代碼;
使用(yòng)自己項目代碼需要改造下代碼,主要是代碼目錄為(wèi)隻讀目錄,需要把runtime設置到/tmp/目錄
tp5設置示例:
namespace think; // ThinkPHP 引導文(wén)件 // 1. 加載基礎文(wén)件 define('RUNTIME_PATH', '/tmp/'); require __DIR__ . '/base.php'; // 2. 執行應用(yòng) 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 部署測試
使用(yòng)wrk簡單壓測了下,性能(néng)還是可(kě)以的:
wrk -d 10 -t 100 -c 1000 http://61763311-1577904969934260.test.functioncompute.com/
本地6c16G mbp:
tp應用(yòng)跑起來後會鏈接數據庫,性能(néng)差異有(yǒu)部分(fēn)是數據庫原因。
4 代碼更新(xīn)
目前發現隻能(néng)支持手動更新(xīn)代碼包,或者oss;希望後續改進,直接支持代碼庫最好
留言