共计 2950 个字符,预计需要花费 8 分钟才能阅读完成。
01. PHP 运行时
1. 装置自定义库
通过依赖管理工具,例如 composer,在本地装置依赖后同函数代码一起打包上传。
- 依赖库同代码一起打包上传 通过依赖管理工具,例如 composer,在本地装置依赖后同函数代码一起打包上传。
- 打包时函数入口文件须要在
zip
包的根目录下。如果打包整个文件夹并上传zip
包,则会因解压后无奈在根目录找到入口文件而导致函数创立失败。
本文以 PHP7 装置 requests
库为例:
- 在本地终端中执行
mkdir test-package
命令,创立一个目录用于寄存函数代码和依赖库。 -
在
test-package
下创立conposer.json
并指定须要装置的依赖库及版本。{ "require": {"requests": ">=1.0"} }
-
执行以下命令,在该目录下装置
requests
依赖库。cd test-package composer install
-
在该目录下创立函数入口文件
index.php
并在代码中援用requests
库。<?php require 'vendor/autoload.php'; function main_handler($event, $context) {return "hello world";} ?>
-
将函数代码及依赖库一起压缩为 zip 包,在 云函数控制台 中上传打包的 zip 包并创立一个新函数。操作步骤如下:
i. 登录 云函数控制台,单击左侧导航栏的「函数服务」。
ii. 在主界面上方抉择冀望创立函数的地区,并单击「新建」,进入函数创立流程。
iii. 在「新建函数」页面,填写函数根本信息。如下图所示:
- 创立形式:抉择应用「自定义创立」来新建函数。
- 运行环境:抉择「Php7」。
- 提交办法:抉择「本地上传 zip 包」。
- 单击「实现」即可创立函数。
2. 装置自定义扩大
在函数入口文件的同级目录下创立扩大文件夹 php_extension
并增加自定义扩大文件 .so
和配置文件 php.ini
,同函数代码一起打包上传。
本文以 PHP7
装置自定义扩大 swoole.so
为例。
- 在本地终端中执行
mkdir test-package
命令,创立一个目录用于寄存函数代码和依赖库。 -
执行以下命令在
test-package
创立文件夹php_extension
,并将扩大对应的配置文件php.ini
和扩大文件.so
放在该目录下,目录构造如下:- 扩大文件夹
php_extension
和配置文件php.ini
为固定命名,如应用其余命名可能导致扩大加载失败。 - 扩大文件夹
php_extension
和配置文件php.ini
以及自定义扩大.so
文件须要具备可执行权限。
- 扩大文件夹
|____php_extension
| |____php.ini
| |____swoole.so
|____index.php
- 自定义扩大反对从代码中或层中加载,如果扩大以层的模式上传,请确保上传到层的 zip 解压后的目录格局如下:
|____php_extension
| |____swoole.so
- php.ini 写法:
-
扩大在代码目录下:
extension=/var/user/php_extension/swoole.so
-
扩大在层目录下:
extension=/opt/php_extension/swoole.so
- 在该目录下创立函数入口文件
index.php
,可通过extension_loaded()
函数查看扩大是否加载胜利,加载胜利返回true
,否则返回false
。
<?php
function main_handler($event, $context) {var_dump(extension_loaded('swoole'));
return "hello world";
}
?>
- 将函数代码及依赖库一起压缩为 zip 包,在 云函数控制台 中上传打包的 zip 包并创立一个新函数。操作步骤如下:
i. 登录 云函数控制台,单击左侧导航栏的「函数服务」。
ii. 在主界面上方抉择冀望创立函数的地区,并单击「新建」,进入函数创立流程。
iii. 在「新建函数」页面,填写函数根本信息。如下图所示:
- 创立形式:抉择应用「自定义创立」来新建函数。
- 运行环境:抉择「Php7」。
- 提交办法:抉择「本地上传 zip 包」。
- 单击「实现」即可创立函数。
02. Java 运行时
通过依赖管理工具,例如 maven,在本地装置依赖后同函数代码一起打包上传。
- 在本地终端中执行
mkdir test-package
命令,创立一个目录用于寄存函数代码和依赖库。 - 在该目录下创立
pom.xml
,并在pom.xml
中配置依赖信息。 - 在我的项目文件夹根目录下执行
mvn package
命令,编译输入如下:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building java-example 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.785 s
[INFO] Finished at: 2017-08-25T10:53:54+08:00
[INFO] Final Memory: 17M/214M
[INFO] ------------------------------------------------------------------------
-
将函数代码及依赖库一起压缩为 jar 包,在 云函数控制台 中上传打包的 jar 包并创立一个新函数。操作步骤如下:
- 登录 云函数控制台,单击左侧导航栏的「函数服务」。
- 在主界面上方抉择冀望创立函数的地区,并单击「新建」,进入函数创立流程。
- 在“新建函数”页面,填写函数根本信息。如下图所示:
- 创立形式:抉择应用「自定义创立」来新建函数。
- 运行环境:抉择「Java8」。
- 提交办法:抉择「本地上传 zip 包」。
- 单击「实现」即可创立函数。
03. Go 运行时
应用办法:打包时上传最终的二进制文件。
Go 运行时的依赖库同代码一起编译后失去二进制文件,在 云函数控制台 中上传打包的二进制文件并创立一个新函数。操作步骤如下:
- 登录 云函数控制台,单击左侧导航栏的「函数服务」。
- 在主界面上方抉择冀望创立函数的地区,并单击「新建」,进入函数创立流程。
-
在“新建函数”页面,填写函数根本信息。如下图所示:
- 创立形式:抉择应用「自定义创立」来新建函数。
- 运行环境:抉择「Go1」。
- 提交办法:抉择「本地上传 zip 包」。
- 单击「实现」即可创立函数。
One More Thing
立刻体验腾讯云 Serverless Demo,支付 Serverless 新用户礼包 👉 腾讯云 Serverless 老手体验。