全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
函数计算

模板使用指南

更新时间:2018-02-08 10:39:35

函数计算的模板是提供了多种场景的示例代码供给用户使用,用户可以在示例代码上进行更改,也可以直接使用模板代码。模板的描述在控制台选择模板的页面里详情介绍,模板的输入输出以及注意事项都会标注出来,另外有些模板是需要配置对应触发器后才能使用,例如获取OSS对象下载压缩,下面是官方提供模板列表,方便用户查到相关信息。

api-gateway-nodejs6(API网关返回串大全)

本模板是一个API网关的后端实现,演示了如何返回不同的相应内容,包括HTML页面,JSON,和图片格式。

  • 输入参数
    {“queryParameters”:{“response”:”html|json|image”}}
  • 输出参数
    html, or json, or image

get-object-meta(获取OSS对象属性)

上传一个指定前缀或后缀的Object到某个Bucket,函数通过event获取Region,Bucket Name和Object Name并把获取到Object的Meta信息写入一个文件并上传到指定Bucket下。

  • 输入参数

    通过OSS的Post Object接口上传文件(OSS控制台上传文件,一般调用该接口)然后触发函数执行,函数可以从传入的Event参数中获取您上传文件的Region,Bucket Name和Object Name等信息。

  • 输出参数

    产生一个文件用于记录被上传Object的Meta信息,并上传该文件到OSS指定的Bucket下。

  • 注意事项

    在运行该示例,需要设置OSS触发器(触发事件为oss: ObjectCreated: PostObject), 同时您需要在ServiceRole里面加入Get Object和Put Object权限。当您创建Service Role的时候,允许函数计算写日志到您指定的LogStore里面的权限是默认加上的。

image-crawler(图片爬虫)

网络爬取图片demo,用户提供一个url地址,抓取所有’xxx.jpg’文件,并转存到oss中。

  • 输入参数

    • url: 任意有图片的url
    • EndPoint:输入Bucket的EndPoint
    • BucketName:输入Bucket名称
  • 输出参数result:ok:转存成功 | error:转存出错。

  • 注意事项

    注意:需要开通日志服务,并且grant权限给函数,才能查看log,同样开通oss,授权读写权限。

  • 权限策略

    AliyunOSSFullAccess、AliyunLogFullAccess

以上的服务级别的角色策略, 应当加到您服务角色里面, 如果已经含有则不需要加入。

image-recognition(图像识别)

场景:图像自动分类,用户通过oss上传图片,触发函数计算服务进行图像识别,并且按照识别的结果进行分类存储方案分析。

  • 操作步骤

    1. 通过OSS的Put或者Post事件的触发函数计算服务。
    2. 函数服务里通过调用阿里云的图像识别服务,实时分析出图片内容。
    3. 解析识别的结果,归类存储到OSS不同的bucket中前置准备:step1: 开通日志服务,并授权函数服务step2: 开通oss,并创建3个bucket,onebucketforwatching,twobucketsfor’plant, animal’imagestep3: 开通图像识别服务。
  • 输入参数

    1. EndPoint:输入Bucket的EndPoint
    2. BucketName:输入Bucket名称
  • 输出参数

    result:ok:成功|error:出错。

  • 注意事项

    需要开通日志服务,图像识别服务,OSS服务,并且grant权限给函数,才能查看log,同样授权角色对OSS的读写权限。

  • 权限策略: 增加权限

    1. AliyunOSSFullAccess
    2. AliyunLogFullAccess

ip-lookup(IP查询)

该函数订阅日志服务logstore的实时数据,根据日志字段中的ip值,查找ip数据库获得ip归属的国家、省、市、ISP信息。最终在原始数据基础上添加ip归属信息后写入另一个logsotre。了解更多使用细节请访问aliyun-log-fc-functions

  • 输入参数

    functioinevent根据用户配置增加logstore的shardcurosr等信息后得到。输入用于指示function从shard的什么位置开始、停止读取数据,并为函数自定义逻辑提供额外配置(例如数据做什么加工、写出到哪里)。当shard有数据写入时,日志服务会定时触发函数执行。>functioinevent根据用户配置增加logstore的shardcurosr等信息后得到。
    输入用于指示function从shard的什么位置开始、停止读取数据,并为函数自定义逻辑提供额外配置(例如数据做什么加工、写出到哪里)。当shard有数据写入时,日志服务会定时触发函数执行。

  • 输出参数

    执行成功的函数会将源logstore数据做加工后再写到目标logstore,并返回一个JSONObject序列化的字符串,包含:ingestLines(读取日志行数)、ingestBytes(读取日志字节数)、shipLines(输出日志行数)、shipBytes(输出日志字节数)。如执行过程中发生异常(例如读写logstore失败),会抛出IOException终止函数运行。

  • 注意事项

    该函数会初始化一个数组用于存储ipdata资源字典,建议为函数设置768MB+内存规格。如果logstore单shard日志流量较大,建议设置120s以上超时时间。

  • 权限策略: 增加权限

    • AliyunLogFullAccess
    • AliyunOSSReadOnlyAccess

logstore-replication(日志备份)

该函数订阅日志服务logstore的实时数据,并复制数据到另一个logstore。了解更多使用细节请访问aliyun-log-fc-functions

  • 输入参数

    functioin event根据用户配置增加logstore的shard curosr等信息后得到。输入用于指示function从shard的什么位置开始、停止读取数据,并为函数自定义逻辑提供额外配置(例如数据做什么加工、写出到哪里)。当shard有数据写入时,日志服务会定时触发函数执行。

  • 输出参数

    执行成功的函数会将源logstore数据复制到目标logstore,并返回一个JSON Object序列化的字符串,包含:ingestLines(读取日志行数)、ingestBytes(读取日志字节数)、shipLines(输出日志行数)、shipBytes(输出日志字节数)。如执行过程中发生异常(例如读写logstore失败),会抛出IOException终止函数运行。

  • 注意事项

    该函数读取数据并批量写到logstore,建议为函数设置384MB+内存规格。如果logstore单shard日志流量较大,建议设置120s以上超时时间。

  • 权限策略: 增加权限

    AliyunLogFullAccess

marketplace-weather-demo(使用云市场)

通过函数计算把云市场里提供的服务包装提供给用户使用,本例子使用某个提供商使用免费天气预报、空气质量、穿衣指数等情况提供出去。[注意]:需要用户开通云市场里服务商提供的天气预报服务,在控制台上获取服务的appcode即可使用该程序。

  • 输入参数
    appcode: 输入服务商提供的产品appcode

  • 输出参数
    content:返回整体天气预报,空气质量等数据,以json格式传输回来

oss-download-zip-upload(OSS对象下载压缩)

通过该模板示例,您可以完成从OSS某个Bucket中下载图片,对图片进行打包(ZIP),并把打包后的ZIP文件上传到某Bucket中操作。注意该函数对应的Service的角色访问策略需要读写OSS的权限。

  • 输入参数
  1. EndPoint:输入Bucket的EndPoint
  2. BucketName:输入Bucket名称
  • 输出参数
    ZipFileSize:打包后的文件大小,单位是字节。

  • 权限策略: 增加权限

  1. AliyunOSSFullAccess
  2. AliyunLogFullAccess

oss-get-object-info(获取对象信息)

通过该模板函数, 您可以获取OSS指定Bucket中Object的详细信息。注意该函数对应的Service的角色访问策略需要读OSS的权限。

  • 输入参数
  1. EndPoint: 输入Bucket的EndPoint
  2. BucketName: 输入Bucket的名称
  • 输出参数
  1. last_modified:Object的最后更新时间
  2. key:Object的名称
  • 权限策略: 增加权限
  1. AliyunOSSReadOnlyAccess
  2. AliyunLogFullAccess

read-write-tablestore-nodejs6(读写表格存储)

在函数中读写表格存储(TableStore): 先通过GetRow写入一行数据,然后把这一行数据通过GetRow读出来。

  • 输入参数

  • 输出参数
    GetRow的结果

  • 注意事项
    需要开通表格存储并且预先创建好instance和table

  • 权限策略: 增加权限

  1. AliyunOTSFullAccess
  2. AliyunLogFullAccess

read-write-tablestore-python27(读写表格存储)

在函数中读写表格存储(TableStore): 先通过GetRow写入一行数据,然后把这一行数据通过GetRow读出来。

  • 输入参数

  • 输出参数

GetRow的结果

  • 注意事项

需要开通表格存储并且预先创建好instance和table。

  • 权限策略: 增加权限。

    • AliyunOTSFullAccess
    • AliyunLogFullAccess

return-apigateway-string(API网关返回串)

通过本例子,可以让用户了解通过函数计算如何获取从API网关传输过来的参数,以及函数计算如何构造标准的API网关响应串。

  • 输入参数

    APIPara: 在API网关里配置请求参数。

  • 输出参数

    api_rep:返回API网关标准响应串>api_rep:返回API网关标准响应串。

本文导读目录