通过函数计算的Custom Runtime,您可以使用TypeScript在函数计算平台编写函数。本文介绍快速部署和调用TypeScript函数的详细步骤。您可以修改TypeScript中的示例代码实现二次开发,满足您的需求。

前提条件

您已完成以下操作:

操作步骤

  1. 在目标目录中,执行以下命令,初始化项目。
    s init start-fc-custom-samples -d start-fc-custom-samples
  2. 执行以下命令,进入code目录内。
    cd start-fc-custom-samples/typescript/event-demo/code
  3. 执行以下命令,安装依赖。
    npm install
    输出示例:
    npm WARN old lockfile
    npm WARN old lockfile The package-lock.json file was created with an old version of npm,
    npm WARN old lockfile so supplemental metadata must be fetched from the registry.
    npm WARN old lockfile
    npm WARN old lockfile This is a one-time fix-up, please be patient...
    npm WARN old lockfile
    
    up to date in 828ms
  4. 执行以下命令,进入项目目录。
    cd ../
  5. 执行以下命令,部署项目。
    s deploy -y
    输出示例:
    [2021-09-09T16:30:26.128] [INFO ] [S-CLI] - Start ...
    [2021-09-09T16:30:26.848] [INFO ] [FC-DEPLOY] - Using region: cn-hangzhou
    [2021-09-09T16:30:26.849] [INFO ] [FC-DEPLOY] - Using access alias: default
    [2021-09-09T16:30:26.849] [INFO ] [FC-DEPLOY] - Using accessKeyID: 188077086902****
    [2021-09-09T16:30:26.849] [INFO ] [FC-DEPLOY] - Using accessKeySecret: LTAI4G4cwJkK4Rza6xd9****
      Using fc deploy type: sdk, If you want to deploy with pulumi, you can [s cli fc-default set deploy-type pulumi] to switch.
    [2021-09-09T16:30:27.466] [INFO ] [FC-DEPLOY] - Checking Service custom-demo exists
    [2021-09-09T16:30:27.739] [INFO ] [FC-DEPLOY] - Checking Function tsEventFunc exists
      Make service custom-demo success.
      Make function custom-demo/tsEventFunc success.
    [2021-09-09T16:32:29.150] [INFO ] [FC-DEPLOY] - Checking Service custom-demo exists
    [2021-09-09T16:32:29.305] [INFO ] [FC-DEPLOY] - Checking Function tsEventFunc exists
    
    Tips for next step
    ======================
    * Display information of the deployed resource: s info
    * Display metrics: s metrics
    * Display logs: s logs
    * Invoke remote function: s invoke
    * Remove Service: s remove service
    * Remove Function: s remove function
    * Remove Trigger: s remove trigger
    * Remove CustomDomain: s remove domain
    
    
    
    fc-ts-demo-fc-ts:
      region: cn-hangzhou
      service:
        name: custom-demo
      function:
        name: tsEventFunc
        runtime: custom
        handler: index.handler
        memorySize: 512
        timeout: 3
  6. 执行以下命令,远程调用函数。
    s invoke -e "hello"
    输出示例:
    [2021-09-09T16:33:36.971] [INFO ] [S-CLI] - Start ...
    ========= FC invoke Logs begin =========
    FC Invoke Start RequestId: 84b50778-d27f-4554-b5e5-5cbe908498ba
    hello
    FC Invoke End RequestId: 84b50778-d27f-4554-b5e5-5cbe908498ba
    
    Duration: 7.11 ms, Billed Duration: 8 ms, Memory Size: 512 MB, Max Memory Used: 171.41 MB
    ========= FC invoke Logs end =========
    
    FC Invoke Result:
    hello
    
    
    End of method: invoke