部署代码包

本文以安装第三方依赖emoji为例,介绍如何为您的Python代码安装依赖,打包并部署代码至函数计算

准备工作

  1. 创建一个用于测试的代码目录,如mycode

    • Linux或macOS系统

      您可以执行mkdir -p /tmp/mycode创建。

    • Windows系统

      在任意位置新建文件夹,并将其命名为mycode即可。

  2. mycode目录下,建立index.py文件。

    文件内容如下。

    from emoji import emojize
    def handler(event, context):
        return emojize(":thumbs_up:")

使用pip安装依赖并部署代码

前提条件

操作步骤

  1. mycode目录下执行pip3 install emoji -t .安装emoji依赖库到当前目录。

  2. 打包mycode目录下的所有文件。

    • Linux或macOS系统

      进入mycode目录,执行zip code.zip -r ./*

      说明

      请确保您具有该目录的读写权限。

    • Windows系统

      进入mycode目录,选中所有文件,单击鼠标右键,选择打包为ZIP包。

  3. 函数计算控制台找到目标函数,然后在函数详情页面的右上角,单击上传代码上传您上一步打包的ZIP包。

重要

由于函数计算的运行环境是Linux系统,您在Windows系统或macOS系统安装emoji依赖库时如果带有二进制文件,会导致您的代码包上传到函数计算后运行失败。因此,建议您使用WebIDE打包函数第三方依赖或者使用Serverless Devs工具安装依赖并部署项目

使用Serverless Devs工具安装依赖并部署项目

前提条件

操作步骤

  1. 执行cd /tmp/mycode进入mycode目录。

  2. 新增s.yaml文件。

    编写文件内容示例如下。

    edition: 3.0.0
    name: fcDeployApp
    access: "default"
    
    vars: # 全局变量
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3 # 组件名称
        props:
          region: ${vars.region}             
          functionName: "emojipy"
          description: 'this is emoji'
          runtime: "python3"
          code: ./
          handler: index.handler
          memorySize: 128
          timeout: 30
          environmentVariables:
            PYTHONUSERBASE: /code/python         # 增加环境变量获取依赖
  3. 新增requirements.txt文件。

    编写文件内容如下:

    emoji==2.0.0
  4. 执行sudo s build --use-docker安装依赖。

    执行完成后,依赖被安装到./python目录下。

  5. 执行sudo s deploy部署项目。

    执行完成后,即可部署函数到函数计算

更多信息

您也可以使用函数计算的层功能安装依赖,推荐您使用官方公共层或在线构建依赖层。具体操作,请参见以下文档。