最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 一文读懂云函数 SCF 如何进行依赖安装(下)

    正文概述 转载于:掘金(腾讯云Serverless)   2021-07-28   424

    01. php 运行时

    1. 安装自定义库

    通过依赖管理工具,例如 composer,在本地安装依赖后同函数代码一同打包上传。

    • 依赖库同代码一起打包上传 通过依赖管理工具,例如 composer,在本地安装依赖后同函数代码一同打包上传。
    • 打包时函数入口文件需要在 zip 包的根目录下。如果打包整个文件夹并上传 zip 包,则会因解压后无法在根目录找到入口文件而导致函数创建失败。

    本文以 PHP7 安装 requests 库为例:

    1. 在本地终端中执行 mkdir test-package 命令,创建一个目录用于存放函数代码和依赖库。

    2. test-package下创建conposer.json并指定需要安装的依赖库及版本。

      {
      "require": {
       "requests": ">=1.0"
        }
      }
      
    3. 执行以下命令,在该目录下安装 requests 依赖库。

      cd test-package
      composer install
      
    4. 在该目录下创建函数入口文件 index.php 并在代码中引用 requests 库。

      <?php
      require 'vendor/autoload.php';
      function main_handler($event, $context) {
          return "hello world";
      }
      ?> 
      
    5. 将函数代码及依赖库一同压缩为 zip 包,在 云函数控制台 中上传打包的 zip 包并创建一个新函数。操作步骤如下:

      i. 登录 云函数控制台,单击左侧导航栏的「函数服务」。

      ii. 在主界面上方选择期望创建函数的地域,并单击「新建」,进入函数创建流程。

      iii. 在「新建函数」页面,填写函数基本信息。如下图所示: 一文读懂云函数 SCF 如何进行依赖安装(下)

      • 创建方式:选择使用「自定义创建」来新建函数。
      • 运行环境:选择「Php7」。
      • 提交方法:选择「本地上传zip包」。
    6. 单击「完成」即可创建函数。

    2. 安装自定义扩展

    在函数入口文件的同级目录下创建扩展文件夹 php_extension 并添加自定义扩展文件 .so 和配置文件 php.ini,同函数代码一起打包上传。

    本文以 PHP7 安装自定义扩展 swoole.so 为例。

    1. 在本地终端中执行 mkdir test-package 命令,创建一个目录用于存放函数代码和依赖库。

    2. 执行以下命令在 test-package 创建文件夹 php_extension,并将扩展对应的配置文件 php.ini 和扩展文件 .so 放在该目录下,目录结构如下:

    |____php_extension
    | |____php.ini
    | |____swoole.so
    |____index.php  
    
    1. 自定义扩展支持从代码中或层中加载,如果扩展以层的形式上传,请确保上传到层的 zip 解压后的目录格式如下:
    |____php_extension
    | |____swoole.so
    
    1. php.ini 写法:
    • 扩展在代码目录下:

      extension=/var/user/php_extension/swoole.so
      
    • 扩展在层目录下:

      extension=/opt/php_extension/swoole.so
      
    1. 在该目录下创建函数入口文件 index.php,可通过 extension_loaded( ) 函数检查扩展是否加载成功,加载成功返回 true,否则返回 false
    <?php
    function main_handler($event, $context) {
        var_dump(extension_loaded('swoole'));
        return "hello world";
    }
    ?> 
    
    1. 将函数代码及依赖库一同压缩为 zip 包,在 云函数控制台 中上传打包的 zip 包并创建一个新函数。操作步骤如下:

    i. 登录 云函数控制台,单击左侧导航栏的「函数服务」。

    ii. 在主界面上方选择期望创建函数的地域,并单击「新建」,进入函数创建流程。

    iii. 在「新建函数」页面,填写函数基本信息。如下图所示: 一文读懂云函数 SCF 如何进行依赖安装(下)

    • 创建方式:选择使用「自定义创建」来新建函数。
    • 运行环境:选择「Php7」。
    • 提交方法:选择「本地上传zip包」。
    1. 单击「完成」即可创建函数。

    02. Java 运行时

    通过依赖管理工具,例如 maven,在本地安装依赖后同函数代码一同打包上传。

    1. 在本地终端中执行 mkdir test-package 命令,创建一个目录用于存放函数代码和依赖库。
    2. 在该目录下创建 pom.xml,并在 pom.xml 中配置依赖信息。
    3. 在项目文件夹根目录下执行 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] ------------------------------------------------------------------------
    
    1. 将函数代码及依赖库一同压缩为 jar 包,在 云函数控制台 中上传打包的 jar 包并创建一个新函数。操作步骤如下:

      1. 登录 云函数控制台,单击左侧导航栏的「函数服务」。
      2. 在主界面上方选择期望创建函数的地域,并单击「新建」,进入函数创建流程。
      3. 在“新建函数”页面,填写函数基本信息。如下图所示: 一文读懂云函数 SCF 如何进行依赖安装(下)
      • 创建方式:选择使用「自定义创建」来新建函数。
      • 运行环境:选择「Java8」。
      • 提交方法:选择「本地上传zip包」。
    2. 单击「完成」即可创建函数。

    03. Go 运行时

    使用方法:打包时上传最终的二进制文件。

    Go 运行时的依赖库同代码一起编译后得到二进制文件,在 云函数控制台 中上传打包的二进制文件并创建一个新函数。操作步骤如下:

    1. 登录 云函数控制台,单击左侧导航栏的「函数服务」。
    2. 在主界面上方选择期望创建函数的地域,并单击「新建」,进入函数创建流程。
    3. 在“新建函数”页面,填写函数基本信息。如下图所示: 一文读懂云函数 SCF 如何进行依赖安装(下)
      • 创建方式:选择使用「自定义创建」来新建函数。
      • 运行环境:选择「Go1」。
      • 提交方法:选择「本地上传zip包」。
    4. 单击「完成」即可创建函数。

    One More Thing

    立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 ? 腾讯云 Serverless 新手体验


    起源地下载网 » 一文读懂云函数 SCF 如何进行依赖安装(下)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元