函数计算简介

阿里云 函数计算(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 触发器

  1. 登录 函数计算管理控制台。
  2. 新建服务,本示例的服务名称为 web-server,所属区域为华东2,开启【高级配置】,配置日志项目和日志仓库,角色创建方式为新建角色,系统授权模板选择 AliyunLogFullAccess,点击 【授权】,点击【确定】。
  3. 在左侧导航栏选择服务,进入到新建的服务中。
  4. 单击 【创建函数】,在创建函数页面:

  • 单击 【选择全部的语言】,在下拉菜单中选择开发语言。
  • 选择 【空白函数】。
  • 按如下图示配置 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 herestatus = '200 OK'response_headers = [('Content-type', 'text/json')]start_response(status, response_headers)# Python2return [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.aliyuncs.com/2016-08-15/proxy/web-server/testHttp/
{"uri": "/2016-08-15/proxy/web-server/testHttp/", "method": "GET"}%

通过控制台及浏览器发送 HTTP 请求请参考文章 测试函数执行。

总结

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

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

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

  2. 函数计算搭建 Serverless Web 应用(二)- 自定义域名

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

  3. 函数计算搭建 Serverless Web 应用(二)- 自定义域名 1

    摘要: 绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,为使用函数计算搭建 Web 应用提供便利. 简介 阿里云 函数计算(Function Compute) ...

  4. 函数计算搭建小程序Web应用后端服务

    简介:使用Severless架构搭建移动App.小程序和Web应用后端服务,弹性伸缩使用云资源. 直达最佳实践:[函数计算搭建小程序Web应用后端服务] 最佳实践频道:[点击查看更多上云最佳实践] 这 ...

  5. 十分钟上线-基于函数计算开发 Restful web api asp.net core web app

    前言 这篇文章适合所有的 C# 开发新手.老鸟以及想准备学习开发 C# 的程序猿..NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runti ...

  6. 基于函数计算的 Serverless AI 推理

    前言概述 本文介绍了使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖.一键部署.本地调试以及压测评估, 全方位展现函数计算的开发敏捷特性.自动弹性伸缩 ...

  7. 从函数计算到 Serverless 架构

    作者:秋雨陈 前言 随着 Serverless 架构不断发展,各云厂商和开源社区都已经布局 Serverless 领域,一方面表现在云厂商推出传统服务/业务的 Serverless 化版本,或者 Se ...

  8. 用函数计算搭建页面的前端CICD系统,提升访问体验

    场景描述 传统动静不分离的产品架构,随着访问量在增长,性能会成为瓶颈.在这种情况下,用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离,提升用户访问体验,实现成本可控.本方案使用 ...

  9. 【函数计算月报】2018年10月刊

    重点新闻 阿里新任 CEO 张勇首次电视采访:云计算将是阿里未来主要业务 阿里巴巴新任 CEO 张勇在接受 CNBC 的电视采访时表示坚信未来的每项业务都将由云计算提供支持,非常乐意在新的数字时代建立 ...

最新文章

  1. 对象冒充_使用您的精神探照灯进行冒充冒名顶替综合症
  2. Metasploit发布了新版本5.0.83
  3. NRedis-Proxy - 高性能中间件服务器
  4. 了解ThreadLocal背后的概念
  5. [再寄小读者之数学篇](2014-11-14 矩阵的应用: 有限几何)
  6. git github配置
  7. centos7网卡编辑_CentOS7网卡命名中碰到的一个坑
  8. Scratch:海龟绘图(九)
  9. 真正智能的语音识别系统离我们还有多远
  10. react-native 学习
  11. 中职计算机课程授课类型,中职计算机课程「任务引领型」教学方法初探
  12. PDF密码忘记了怎么办
  13. spring configuration注解原理
  14. 前端使用cesium加载地球
  15. 启用或禁用笔记本自带键盘
  16. 现代治理12.0:Diligent发出“现代领导力”倡议,帮助组织创建更具多元化和包容性的董事会和领导团队
  17. 中南大学2019计算机研究生分数线,2019中南大学研究生分数线汇总(含2016-2019历年复试)...
  18. 屏蔽google adsense和百度推广的广告
  19. ppt 里插入html,如何在PPT中插入html网页.ppt
  20. opencv学习日记——CV_8UC1 含义

热门文章

  1. linux 管道非阻塞,linux – 管道上的非阻塞读取
  2. mysql5.7 hibenate5.1_5.7 Spring与Hibernate整合应用
  3. 3d打印主要的切片参数类型_3D打印混凝土工艺参数对成型精度的影响
  4. pyqt 取鼠标处文字_爱剪辑:炫彩的动态标题文字特效,这招让视频片头LOGO更酷炫...
  5. python统计中文字符的个数_python统计中文字符数量的两种方法
  6. python实战讲解_Python数据可视化实战讲解
  7. 何兆武:西南联大的数学家
  8. 研究生新生大数据!一大波00后“涌入”同济,最小博士生20岁
  9. 76岁“爷爷考生”第5次备战研究生考试
  10. 拉普拉斯方程之美:万物的数学之匙