tencent cloud

文档反馈

本地调试

最后更新时间:2022-04-28 11:54:32

    操作场景

    通过 Serverless Framework 的本地调试能力,您可以在本地的模拟环境中运行代码,发送模拟测试事件,并获取到函数代码的运行日志等信息。

    前提条件

    系统中已安装好 Node.js 环境。

    注意:

    • 当前命令仅支持 Node.js 和 Python runtime。为保证部署云端和本地运行的结果一致,建议本地安装的 runtime 版本和云端版本保持一致。例如,在云端使用 Node.js 12.x,则本地建议也安装 Node.js 12.x 版本。
    • 目前只有 SCF 组件支持本地调试。
    • 本地调试仅支持事件类型函数,Web 类型函数请参照 云端测试 进行测试。

    使用方式

    通过 sls invoke local 命令完成本地触发运行。Serverless Framework 命令行工具将依据指定的函数模板配置文件,在本地的指定目录中运行相应代码,并通过指定的触发事件,实现在本地云函数模拟环境中运行。

    相关命令如下:

    invoke local .................. 调用本地函数
       --function / -f ............函数名称(只能指定统一目录下 yml 里配置的函数名称)
       --data / -d ................要传递给调用函数的序列化Event数据(String)
       --path / -p ................要传递给调用函数 Event 的 json 文件所在路径
       --context ..................要传递给调用函数的序列化 Context 数据(String)
       --contextPath / -x .........要传递给调用函数 Context 的 json 文件所在路径
       --env / -e .................覆盖环境变量信息,例如 --env VAR1=val1 --env VAR2=val2
       --config / -c ..............Path to serverless config file
    

    操作步骤

    下文以 Node.js 为例,指导您如何进行本地调试:

    1. 执行以下命令,初始化示例代码。

      sls init scf-nodejs && cd scf-nodejs
      
    2. 在目录下创建测试事件模板 test.json。示例如下:

      {
           "value": "test",
           "text": "Hello World事件模板",
           "context": {
               "key1": "test value 1",
               "key2": "test value 2"
           }
      }
      
    1. 创建 .env 文件,输入您的永久密钥。示例如下:
      # .env
      TENCENT_SECRET_ID=xxxxxxxxxx #您账号的 SecretId
      TENCENT_SECRET_KEY=xxxxxxxx #您账号的 SecretKey
      
    说明:

    您也可以通过扫码部署,获取临时密钥自动生成配置文件。
    4. 执行以下命令,在本地查看调用结果。

    sls invoke local -p xxxx.json
    示例如下:
    # sls invoke local -p test.json
    Hello World
    {
    value: 'test',
    text: 'Hello World事件模板',
    context: { key1: 'test value 1', key2: 'test value 2' }
    }
    undefined
    {}
    ---------------------------------------------
    Serverless: 调用成功

    {
    value: "test",
    text: "Hello World事件模板",
    context: {
    key1: "test value 1",
    key2: "test value 2"
    }
    }
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持