资讯专栏INFORMATION COLUMN

函数计算搭建 Serverless Web 应用(一)- HTTP 触发器

ad6623 / 1266人阅读

摘要:配置触发器的函数可以通过请求触发执行。目前函数计算的触发器支持等编程语言,并不同程度支持对应的框架,具体内容请参看参考文档。编写处理函数编写处理函数的时候一定注意配置了触发器的函数接口与普通函数接口不同。

摘要: Web 应用(Serverless web backend) 是函数计算很重要的一个使用场景。相比于传统的在服务器上搭建 web 应用,函数计算无需您管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,以 弹性、可靠 的方式运行您的代码,实现毫秒级别弹性伸缩,轻松应对峰值压力。

函数计算简介
阿里云 函数计算(Function Compute) 是事件驱动的全托管计算服务,是阿里云的 Serverless 计算平台。基于函数计算构建应用,您无需管理服务器等基础设施,而是专注于应用逻辑的开发,大幅提高开发效率。

借助函数计算,您几乎可以构建任何类型的应用程序或后端服务,包括 Web 应用后端服务,大规模文件处理,数据实时流式处理等等。函数计算能实时弹性伸缩计算资源来匹配您的应用负载,使得您的系统能始终如一的、可靠的支撑业务的高速增长。此外您只需为实际使用的资源付费,函数未执行则不付费,财务成本显著减低。

函数计算遇见 Web 应用
Web 应用(Serverless web backend) 是函数计算很重要的一个使用场景。相比于传统的在服务器上搭建 web 应用,函数计算无需您管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,以 弹性、可靠 的方式运行您的代码,实现毫秒级别弹性伸缩,轻松应对峰值压力。

为了更好地支持 Serverless web backend 的使用场景,提升用户体验,函数计算推出 HTTP 触发器,即可以通过 HTTP 请求触发函数执行,您只需将业务代码写在函数中就可以搭建 Web 应用,同时,HTTP 触发器各个编程语言对流行的 Web 框架做了不同程度的兼容,方便您将原有服务迁移到函数计算上来,真正实现 一行代码,一触即发。

HTTP 触发器
HTTP 触发器,顾名思义,即 HTTP 请求可以触发函数执行。配置 HTTP 触发器的函数可以通过 HTTP 请求触发执行。此时函数可以看做一个 Web 应用,对 HTTP 请求进行处理,并将处理结果返回给调用端。

目前函数计算的 HTTP 触发器支持 nodejs、python、php 等编程语言,并不同程度支持对应的 Web 框架,具体内容请参看 参考文档。

使用示例
下面对使用 HTTP 触发器搭建 Web 应用的示例进行介绍。

搭建基于 HTTP 触发器的 Web 应用分为三个步骤:

配置 HTTP 触发器

只有配置了 HTTP 触发器的函数才可以对 HTTP 请求进行处理;
值得注意的是配置了 HTTP 触发器的函数接口与普通函数接口不同。
编写处理函数

编写处理函数的时候一定注意配置了 HTTP 触发器的函数接口与普通函数接口不同。
测试函数执行

通过向函数 HTTP 发送请求触发函数执行,并检验是否符合预期。
配置 HTTP 触发器
登录 函数计算管理控制台。
新建服务,本示例的服务名称为 web-server,所属区域为华东2,开启【高级配置】,配置日志项目和日志仓库,角色创建方式为新建角色,系统授权模板选择 AliyunLogFullAccess,点击 【授权】,点击【确定】。
在左侧导航栏选择服务,进入到新建的服务中。
单击 【创建函数】,在创建函数页面:

单击 【选择全部的语言】,在下拉菜单中选择开发语言。
选择 【空白函数】。
按如下图示配置 HTTP 触发器,单击 【下一步】。

认证方式选择 anonymous,不需要身份验证,支持匿名访问。
请求方式为此函数可以处理的 HTTP Method。

创建函数并填写所在服务、函数名称、描述信息和运行环境信息。
单击【下一步】。
核对信息无误后,单击【创建】。
配置 HTTP 触发器更多内容请参考 配置 HTTP 触发器官方文档。

编写函数代码
以 Python 为例,一个简单的示例代码如下:

-- coding: utf-8 --

import json
HELLO_WORLD = b"Hello world!n"
def handler(environ, start_response):

request_uri = environ["fc.request_uri"]
response_body = {
  "uri":environ["fc.request_uri"],
  "method":environ["REQUEST_METHOD"]
}
# do something here
status = "200 OK"
response_headers = [("Content-type", "text/json")]
start_response(status, response_headers)
# Python2
return [json.dumps(response_body)]
# Python3 tips: When using Python3, the str and bytes types cannot be mixed.
# Use str.encode() to go from str to bytes
# return [json.dumps(response_body).encode()]

更多编程语言的代码示例及详细信息请参考 编写函数代码。

短短两步,基于 HTTP 触发器的 Web 应用就搭建完成了,下面我们对函数进行测试,看是否符合我们的预期。

测试函数执行
您需要向函数发送 HTTP 请求测试函数执行是否符合预期。可以通过浏览器发送 HTTP 请求、curl 发送 HTTP 请求进行测试,控制台也可以发送 HTTP 请求方便您的调试。

例如,通过 curl 发送 HTTP 请求触发函数执行,结果如下:

~ curl https://123456.cn-shanghai.fc...
{"uri": "/2016-08-15/proxy/web-server/testHttp/", "method": "GET"}%
通过控制台及浏览器发送 HTTP 请求请参考文章 测试函数执行。

总结
使用 HTTP 触发器可以快速搭建基于函数计算的 Web 服务,按量付费,免运维,毫秒级弹性扩容,完美解决用户痛点。
Serverless 时代已来,一行代码,一触即发。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/8855.html

相关文章

  • 函数计算搭建 Serverless Web 应用(三)- 三分钟搭建 Web 应用

    摘要:摘要本文对使用自定义域名触发器搭建应用的步骤进行详细介绍,手把手带您三分钟搭建稳定可靠的应用。函数计算搭建应用一触发器中阐述了应用是函数计算很重要的一个使用场景。 摘要: 本文对使用自定义域名 + HTTP 触发器搭建 Web 应用的步骤进行详细介绍,手把手带您三分钟搭建稳定可靠的 Web 应用。 简介阿里云 函数计算(Function Compute) 是事件驱动的全托管计算服务,是...

    ybak 评论0 收藏0
  • 基于阿里云Serverless架构下函数计算的最新应用场景详解(

    摘要:如果使用阿里云函数计算,您将高峰期每小时的访问日志,或者低谷期每小时的访问日志交给一个计算函数处理,并将处理结果存到中。下面结合阿里云的函数计算产品来讲解各个应用场景中架构以及如何解决的场景中的痛点。 摘要: Serverless概念是近年来特别火的一个技术概念,基于这种架构能构建出很多应用场景,适合各行各业,只要对轻计算、高弹性、无状态等场景有诉求的用户都可以通过本文来普及一些基础概...

    Eidesen 评论0 收藏0
  • Serverless系列 | 云计算究竟如何进化出了Serverless

    摘要:导读近期灵雀云技术专家邵明岐翻译了所著的一书的部分内容,可以说是对科普与观察的上佳素材。的另一半是是的另一种形式,概念上容易混淆的地方在于,有时候将自己的服务,,称为。 导读:近期灵雀云技术专家邵明岐翻译了Mike Roberts & John Chapin所著的《What is serverless》一书的部分内容,可以说是对Serverless科普与观察的上佳素材。本文为第1篇,他...

    yanbingyun1990 评论0 收藏0
  • 关于Serverless架构及平台选择,你知道多少?

    摘要:初版在年月发布,随后在月正式发布。架构属于平台即服务,针对事件驱动,短暂性的工作负载。架构平台选择目前最有效构建架构方法是在众多架构平台中选择其一,并充分利用它所有的功能,以下将列举几个架构平台亚马逊推出了第一个的云服务平台。 showImg(https://segmentfault.com/img/remote/1460000009775604?w=640&h=356); 数人云近来...

    oysun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<