提交 e1b14320 编写于 作者: 叶杰麟 提交者: Gitee

update docs/uniCloud/cf-functions.md.

上级 108753ba
...@@ -60,7 +60,7 @@ exports.main = async (event, context) => { ...@@ -60,7 +60,7 @@ exports.main = async (event, context) => {
|API |描述 | |API |描述 |
|-- |-- | |-- |-- |
|uniCloud.callFunction() |云函数中调用另一个云函数 [见下](uniCloud/cf-functions?id=callbyfunction) | |uniCloud.callFunction() |客户端调用云函数 [见下](uniCloud/cf-functions?id=clientcallfunction)云函数中调用另一个云函数 [见下](uniCloud/cf-functions?id=callbyfunction) |
|uniCloud.database() |云数据库对象 [详情](uniCloud/cf-database.md) | |uniCloud.database() |云数据库对象 [详情](uniCloud/cf-database.md) |
|uniCloud.uploadFile() |云函数上传文件到云存储 [详情](uniCloud/storage?id=clouduploadfile) | |uniCloud.uploadFile() |云函数上传文件到云存储 [详情](uniCloud/storage?id=clouduploadfile) |
|uniCloud.downloadFile() |云函数下载云存储的文件到云函数运行环境 [详情](uniCloud/storage?id=clouddownloadfile) | |uniCloud.downloadFile() |云函数下载云存储的文件到云函数运行环境 [详情](uniCloud/storage?id=clouddownloadfile) |
...@@ -107,11 +107,11 @@ exports.main = async (event, context) => { ...@@ -107,11 +107,11 @@ exports.main = async (event, context) => {
```js ```js
'use strict'; 'use strict';
exports.main = async (event, context) => { exports.main = async (event, context) => {
let source = context.SOURCE // 当前云函数被何种方式调用 let source = context.SOURCE // 当前云函数被何种方式调用
// client 客户端callFunction方式调用 // client 客户端callFunction方式调用
// http 云函数url化方式调用 // http 云函数url化方式调用
// timing 定时触发器调用 // timing 定时触发器调用
// server 由管理端调用,HBuilderX里上传并运行,仅阿里云支持,腾讯云这种方式调用也是client // server 由管理端调用,HBuilderX里上传并运行,仅阿里云支持,腾讯云这种方式调用也是client
// function 由其他云函数callFunction调用,仅阿里云支持,腾讯云这种方式调用也是client // function 由其他云函数callFunction调用,仅阿里云支持,腾讯云这种方式调用也是client
} }
``` ```
...@@ -214,13 +214,13 @@ console.log(res) ...@@ -214,13 +214,13 @@ console.log(res)
} }
} }
``` ```
**发送formdata类型数据** **发送formdata类型数据**
实际业务中常有使用云函数发送formdata类型数据的需求,比如微信小程序提供的一些服务端接口(图片内容安全检测、识别图片二维码等),可以参考以下示例进行发送 实际业务中常有使用云函数发送formdata类型数据的需求,比如微信小程序提供的一些服务端接口(图片内容安全检测、识别图片二维码等),可以参考以下示例进行发送
```js ```js
'use strict'; 'use strict';
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
...@@ -239,8 +239,8 @@ exports.main = async (event, context) => { ...@@ -239,8 +239,8 @@ exports.main = async (event, context) => {
dataType: 'json' // 此处指定为json表示将此请求的返回值解析为json dataType: 'json' // 此处指定为json表示将此请求的返回值解析为json
}) })
return res return res
}; };
``` ```
## 使用npm ## 使用npm
...@@ -377,7 +377,7 @@ serverless默认是没有固定的服务器IP的,因为有很多服务器在 ...@@ -377,7 +377,7 @@ serverless默认是没有固定的服务器IP的,因为有很多服务器在
- 云函数内存使用量会随着并发量增大而增加 - 云函数内存使用量会随着并发量增大而增加
- 如果并发的不同请求对全局变量同时进行读写会污染全局变量,可能会导致意想不到的后果,开启单实例多并发后请不要编写修改全局变量的代码,除非你熟悉这种技术带来的特殊应用,比如下文进阶部分提到的ip过滤。 - 如果并发的不同请求对全局变量同时进行读写会污染全局变量,可能会导致意想不到的后果,开启单实例多并发后请不要编写修改全局变量的代码,除非你熟悉这种技术带来的特殊应用,比如下文进阶部分提到的ip过滤。
- 设置过大的单实例多并发可能会导致实例底层网络请求排队从而导致请求超时 - 设置过大的单实例多并发可能会导致实例底层网络请求排队从而导致请求超时
**适用场景** **适用场景**
...@@ -418,10 +418,10 @@ exports.main = async function(event, context) { ...@@ -418,10 +418,10 @@ exports.main = async function(event, context) {
开启单实例多并发后的全局变量复用并非一定是坏的结果,如果你很了解此行为,也可以对此进行有效的利用 开启单实例多并发后的全局变量复用并非一定是坏的结果,如果你很了解此行为,也可以对此进行有效的利用
例:[ip-filter](https://ext.dcloud.net.cn/plugin?id=4619)中就利用云函数全局缓存一些ip访问信息来限制单ip访问频率,可以下载示例项目体验一下 例:[ip-filter](https://ext.dcloud.net.cn/plugin?id=4619)中就利用云函数全局缓存一些ip访问信息来限制单ip访问频率,可以下载示例项目体验一下
### 云函数运行环境@runtime ### 云函数运行环境@runtime
目前腾讯云和阿里云均支持选择nodejs版本,有nodejs8、nodejs12两个选项,需要在云函数创建时设定,不可修改。需要在云函数的package.json文件的`cloudfunction-config->runtime`字段进行配置,详情参考:[云函数package.json](uniCloud/cf-functions.md?id=packagejson) 目前腾讯云和阿里云均支持选择nodejs版本,有nodejs8、nodejs12两个选项,需要在云函数创建时设定,不可修改。需要在云函数的package.json文件的`cloudfunction-config->runtime`字段进行配置,详情参考:[云函数package.json](uniCloud/cf-functions.md?id=packagejson)
## 云函数package.json@packagejson ## 云函数package.json@packagejson
...@@ -452,7 +452,7 @@ package.json是一个标准json文件,不可带注释。下面是一个package ...@@ -452,7 +452,7 @@ package.json是一个标准json文件,不可带注释。下面是一个package
"type": "timer", "type": "timer",
"config": "0 0 2 1 * * *" "config": "0 0 2 1 * * *"
}], }],
"path": "", "path": "",
"runtime": "Nodejs8" "runtime": "Nodejs8"
} }
} }
...@@ -475,7 +475,7 @@ package.json是一个标准json文件,不可带注释。下面是一个package ...@@ -475,7 +475,7 @@ package.json是一个标准json文件,不可带注释。下面是一个package
"config": "0 0 2 1 * * *" "config": "0 0 2 1 * * *"
}], }],
// 云函数Url化path部分,阿里云需要以/http/开头 // 云函数Url化path部分,阿里云需要以/http/开头
"path": "", "path": "",
"runtime": "" // nodejs版本,可选Nodejs8、Nodejs12,默认:Nodejs8 "runtime": "" // nodejs版本,可选Nodejs8、Nodejs12,默认:Nodejs8
} }
``` ```
...@@ -486,8 +486,8 @@ package.json是一个标准json文件,不可带注释。下面是一个package ...@@ -486,8 +486,8 @@ package.json是一个标准json文件,不可带注释。下面是一个package
- 在web控制台修改云函数配置后,通过HBuilderX的下载云函数菜单会在package.json内添加修改后的云函数配置 - 在web控制台修改云函数配置后,通过HBuilderX的下载云函数菜单会在package.json内添加修改后的云函数配置
- 上传云函数时,如果项目下的package.json内包含云函数配置会同时进行云函数的配置更新 - 上传云函数时,如果项目下的package.json内包含云函数配置会同时进行云函数的配置更新
- package.json只有云端部署才生效,本地运行不生效。 - package.json只有云端部署才生效,本地运行不生效。
- cloudfunction-config不可删除云端配置。例:云端已配置triggers(定时触发器),删除cloudfunction-config内的trigger不会删掉云端的定时触发器 - cloudfunction-config不可删除云端配置。例:云端已配置triggers(定时触发器),删除cloudfunction-config内的trigger不会删掉云端的定时触发器
- runtime参数(nodejs版本)仅可在创建云函数时生效,不可修改 - runtime参数(nodejs版本)仅可在创建云函数时生效,不可修改
## 使用cloudfunctions_init初始化云函数@init ## 使用cloudfunctions_init初始化云函数@init
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册