本文以第三方依赖Nette\Utils
为例,介绍如何为您的PHP代码安装依赖、打包代码并部署至函数计算。
准备工作
- 创建一个用于测试的代码目录,如
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。
- 可选:您已在函数计算控制台创建PHP函数。具体操作,请参见创建函数。
操作步骤
- 在
mycode
目录下创建文件composer.json。内容如下:
{
"require": {
"nette/utils": "v3.2.5"
}
}
- 在
mycode
目录下执行命令composer install
下载依赖。执行完成后,在该目录下自动生成文件composer.lock和目录vendor,vendor目录下包括已下载的依赖。
- 打包
mycode
目录下所有文件。
说明 请确保您创建的index.php
文件位于包的根目录。
- 在函数计算控制台找到目标函数,然后在函数详情页面的右上角,单击上传代码上传您上一步打包的ZIP包。
- 在函数代码页签,单击测试函数。
使用Serverless devs工具安装依赖并部署
前提条件
安装Serverless Devs和Docker
操作步骤
- 在
mycode
目录下编写s.yaml
文件。文件内容示例如下。
edition: 1.0.0 # 命令行YAML规范版本,遵循语义化版本(Semantic Versioning)规范
name: fcDeployApp # 项目名称
access: "default" # 密钥别名
services:
fc-deploy-test: # 服务名称
component: fc # 组件名称
props: # 组件的属性值
region: cn-shanghai
service:
name: fctest
description: 'test'
internetAccess: true
function:
name: testphp
description: this is a test
runtime: php7.2
codeUri: ./
handler: index.handler
memorySize: 128
timeout: 6
- 执行
s build --use-docker
安装依赖。执行完成后,会在mycode
目录下生成一个.s
目录。依赖和相关代码部署到.s/build/artifacts/fctest/testphp/vendor目录。
- 执行
s deploy
部署项目。执行完成后,即可部署函数到函数计算。
更多信息
您也可以使用函数计算的层功能安装依赖。具体操作,请参见层管理。