本文以第三方依赖Nette\Utils为例,介绍如何为您的PHP代码安装依赖、打包代码并部署至函数计算。
准备工作
创建一个用于测试的代码目录,如
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。
操作步骤
在
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
文件位于包的根目录。在函数计算控制台找到目标函数,然后在函数详情页面的右上角,单击上传代码上传您上一步打包的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
部署项目。执行完成后,即可部署函数到函数计算。
更多信息
您也可以使用函数计算的层功能安装依赖。具体操作,请参见创建自定义层。