本文以第三方依賴Nette\Utils為例,介紹如何為您的PHP代碼安裝依賴、打包代碼並部署至Function Compute。
準備工作
建立一個用於測試的代碼目錄,如
mycode
。Linux或macOS系統
您可以執行
mkdir -p /tmp/mycode
建立。Windows系統
在任意位置建立檔案夾,並將其命名為
mycode
即可。
在
mycode
目錄下,建立index.php
檔案。檔案內容如下。
<?php require_once __DIR__ . '/vendor/autoload.php'; use Nette\Utils\Arrays; function handler($event, $context) { return Arrays::contains([1, 2, 3], 1); }
使用Composer安裝依賴並部署
前提條件
您本機已安裝PHP和Composer,且具有執行Composer命令的許可權。關於Composer更多資訊,請參見Composer。
可選:您已在Function Compute控制台建立PHP函數。具體操作,請參見建立事件函數。
操作步驟
在
mycode
目錄下建立檔案composer.json。內容如下:
{ "require": { "nette/utils": "v3.2.5" } }
在
mycode
目錄下執行命令composer install
下載依賴。執行完成後,在該目錄下自動組建檔案composer.lock和目錄vendor,vendor目錄下包括已下載的依賴。
打包
mycode
目錄下所有檔案。Linux或macOS系統
進入
mycode
目錄,執行zip code.zip -r ./*
。說明請確保您具有該目錄的讀寫權限。
Windows系統
進入
mycode
目錄,選中所有檔案,單擊滑鼠右鍵,選擇打包為ZIP包。
說明請確保您建立的
index.php
檔案位於包的根目錄。在Function Compute控制台找到目標函數,然後在函數詳情頁面的右上方,單擊上傳代碼上傳您上一步打包的ZIP包。
您也可以選擇在Function Compute控制台建立新的函數的同時上傳ZIP包。具體操作步驟,請參見建立事件函數。
在函數詳情的代碼頁簽,單擊測試函數。
使用Serverless devs工具安裝依賴並部署
前提條件
操作步驟
在
mycode
目錄下編寫s.yaml
檔案。檔案內容樣本如下。
edition: 3.0.0 name: fcDeployApp access: "default" vars: # 全域變數 region: "cn-hangzhou" resources: hello_world: component: fc3 # 組件名稱 props: region: ${vars.region} # 關於變數的使用方法,可以參考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC functionName: "testphp" description: 'this is a test' runtime: "php7.2" code: ./ handler: index.handler memorySize: 128 timeout: 30
在
mycode
目錄下,新增composer.json
檔案。編寫檔案內容如下。
{ "require": { "nette/utils": "^3.0" } }
執行
sudo s build --use-docker
安裝依賴。執行完成後,會將依賴和相關代碼部署到./vendor目錄。
執行
sudo s deploy
部署專案。執行完成後,即可部署函數到Function Compute。
更多資訊
您也可以使用Function Compute的層功能安裝依賴。具體操作,請參見建立自訂層。