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

简介

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

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

函数计算搭建 Serverless Web 应用(二)- 自定义域名 中阐述了绑定自定义域名,通过自定义域名访问函数,配合 HTTP 触发器使用,为用户使用函数计算搭建 Web 应用提供便利。

本文对使用自定义域名 + HTTP 触发器搭建 Web 应用的步骤进行详细介绍,手把手带您三分钟搭建稳定可靠的 Web 应用。

搭建步骤

场景:本示例基于 HTTP 触发器搭建 Web 应用,有两个函数 f1 和 f2,作为示例,函数的功能只是打印出 request 请求,当然,您可以在函数中编写任意业务逻辑。

预期效果:通过自定义域名进行访问可以触发函数执行,得到预期结果。

前提:您有独立的域名,且已经接入阿里云备案(如果函数在非中国大陆节点的 region,无需备案)。

步骤一:创建配置 HTTP 触发器的函数

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

  • 单击 【选择全部的语言】,在下拉菜单中选择 node8 或 python2.7(本示例代码会对两种语言进行介绍)。
  • 选择 【空白函数】。
  • 按如下图示配置 HTTP 触发器,单击 【下一步】。
  1. 认证方式选择 anonymous,不需要身份验证,支持匿名访问。
  2. 请求方式为此函数可以处理的 HTTP 请求方式。

  • 创建函数并填写所在服务、函数名称、描述信息和运行环境信息。
  • 单击【下一步】。
  • 核对信息无误后,单击【创建】。

然后编写函数代码

# -*- 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()]

此处以 Python 为例,其他语言的代码请参考文章 创建函数和 HTTP 触发器。

步骤二:域名解析

为了保证您的自定义域名的请求可以到达函数计算,需要您在域名解析服务器处设置域名的 CNAME 为您函数计算的 endpoint。

endpoint 的格式为 <accountID>.<region>.fc.aliyuncs.com,您可以在函数计算控制台右上角获取当前 region 的 endpoint。

使用阿里云云解析 DNS 对域名进行解析请参考 域名解析。

步骤三:绑定自定义域名

您需要在函数计算控制台绑定自定义域名:

  • 登录 函数计算控制台

  • 在控制台首页右侧点击进入 自定义域名管理,即可绑定自定义域名并设置路由。

 

 

步骤四:测试

设置成功后,访问自定义域名进行测试,示例演示通过命令行 curl url 进行测试,您也可以通过浏览器测试。

  ~ curl api.app.com
{"path": "/","queries": {},"headers": {"accept": "*/*","user-agent": "curl/7.58.0"},"method": "GET","requestURI": "/","clientIP": "42.120.75.144","serviceName": "serviceA","functionName": "functionA","body": ""
}%~ curl api.app.com/b
{"path": "/b","queries": {},"headers": {"accept": "*/*","user-agent": "curl/7.58.0"},"method": "GET","requestURI": "/b","clientIP": "42.120.75.144","serviceName": "serviceA","functionName": "functionB","body": ""
}%~ curl api.app.com/a
{"path": "/a","queries": {},"headers": {"accept": "*/*","user-agent": "curl/7.58.0"},"method": "GET","requestURI": "/a","clientIP": "42.120.75.144","serviceName": "serviceB","functionName": "functionC","body": ""
}%~ curl api.app.com/a/b
{"path": "/a/b","queries": {},"headers": {"accept": "*/*","user-agent": "curl/7.58.0"},"method": "GET","requestURI": "/a/b","clientIP": "42.120.75.144","serviceName": "serviceB","functionName": "functionD","body": ""
}%

总结

绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,可以快速搭建性能稳定弹性可扩容的 Web 应用,可以说是十分方便了。

您在使用过程中遇到任何问题都可以随时 联系我们,函数计算团队所有工程师都会在群里实时进行答疑,没错,所有工程师,任何问题,随时联系。

期待您的使用~~


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么叫做罗列式_极简罗列法怎么写作文

极简罗列法怎么写作文以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;1. 作文罗列式怎么开头列举式案例一&#xff1a;“争渡&#xff0c;争渡&#xff0c;惊起一滩鸥鹭。”李清照争的是一种…

备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 沧漠责编 | 阿秃导读&#xff1a;Kubernetes 的出现使得广大开发同学也能运维复杂的分布式系统&#xff0c;它大幅降低了容器化应用部署的门槛&#xff0c;但运维和管理一个生产级的高可用 Kubernetes 集群仍十分困难。本文…

移动互联网+智能运营体系搭建=你家有金矿啊!

每个企业都有许多的数据&#xff0c;但能否将数据转化成商业价值&#xff0c;是企业非常关心的问题。阿里巴巴曾自嘲是一家坐在数据的金矿上啃着馒头的企业&#xff0c;前几年集团积累了很多的数据&#xff0c;但这些数据并没有真正应用起来&#xff0c;受限于几个原因&#xf…

厦门理工C语言实验报告8,厦门理工c语言数据结构实验

《厦门理工c语言数据结构实验》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《厦门理工c语言数据结构实验(15页珍藏版)》请在人人文库网上搜索。1、数据结构实验报告 实验序号&#xff1a;6 实验项目名称&#xff1a;树和二叉树的操作 学 号 姓 名专业、班实验地点指…

Apache JMeter 测试webservice接口 中文乱码

文章目录1. http请求编码设置utf-82. jmeter.properties修改默认编码1. http请求编码设置utf-8 2. jmeter.properties修改默认编码 找到apache-jmeter-5.2.1\bin\jmeter.properties文件 在jmeter.properties文件中找到 #sampleresult.default.encodingISO-8859-1 替换为 samp…

elementui 按钮 表单_element UI实现表格中添加开关控制按钮

我使用的是element ui V1.4.3如下图是我要实现的效果&#xff1a;点击显示 Dialog:data"gridData"borderheight"300">on-text "是"off-text "否"on-color"#5B7BFA"off-color"#dadde5"v-model"scope.row.…

【实操手册】如何把一场直播录制下来?

许多用户使用直播服务时&#xff0c;需要把正在直播的视频录制下来进行存储或方便后续的回看。为了满足用户需求&#xff0c;阿里云视频直播服务提供了直播录制功能&#xff0c;本文将对这两种形式的录制方法进行简单介绍。 一、按场景录制 针对不同的场景进行录制配置 • 按…

搞不清边缘计算几款产品差异?动动小手点这里!

最近阿里云新上了一款产品&#xff0c;边缘节点服务&#xff08;简称ENS&#xff09;&#xff0c;随着产品运营推广不断深入&#xff0c;偶尔会遇到用户关于ENS产品与其他几款产品的疑惑&#xff0c;典型问题比如&#xff1a; ENS是部署在CDN位置&#xff0c;用户是不是可以直…

Apache JMeter 压测webservice接口

文章目录一、压测设置和参数说明二、服务台控制监控三、查看结果树四、查看聚合报告一、压测设置和参数说明 压测设置说明线程数并发数量&#xff0c;能跑多少量。具体说是一次存在多少用户同时访问。Rame-Up Period(in seconds)表示JMeter每隔多少秒发动并发。理解成准备时长…

c语言switch caseh(op),switch语句求教

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼c:\program files\visual c\text4.cpp(7) : error C2001: newline in constantc:\program files\visual c\text4.cpp(8) : error C2143: syntax error : missing ) before switchc:\program files\visual c\text4.cpp(9) : error C…

阿里云自研新一代企业云数据库POLARDB背后的技术

从2008年到2018年&#xff0c;阿里巴巴的数据库技术已经发展了10年的时间&#xff0c;10年的时间从AliSQL到RDS&#xff0c;再到自研POLARDB&#xff0c;阿里巴巴数据库技术得到了极大的提升。那么在阿里云自研新一代企业云数据库POLARDB背后有哪些技术呢&#xff1f;本文中&am…

python wxpython radiobutton 能不能默认不选择_Python啥都行_Robot自动化测试

文章目录Robot介绍与环境搭建Robot特性初探Robot 技术架构WxPython GUI工具箱Robot FrameworkRIDE安装第一个案例启动RIDE自定义一个函数新建项目及测试用例导入自定义库函数使用自定义函数运行测试用例及查看其报告Robot介绍与环境搭建Robot特性初探Robot Framework是一个基于…

为什么嫁人就选程序员!

本文的重点是&#xff1a;“为什么年轻漂亮的小姑娘都瞄准了程序员小哥哥”“理发38&#xff1f;太奢侈了&#xff01;淘宝20买套剪刀自己可以用好几年。”“衣服太贵了&#xff0c;我觉得优衣库的那件打折就已经很好了”“上个月的一千块钱的零花钱没花完&#xff0c;这个月先…

数字化转型 移动化先行 云栖大会上发布了哪些移动研发新利器?

随着企业使用互联网技术的不断深入&#xff0c;企业在产品研发、供应链管理、市场运营及企业内部的场景当中&#xff0c;生产效率得到大幅度提升。随着移动互联网技术在社会层面深度普及&#xff0c;移动设备的普及性使得企业成为数字化转型的最佳载体。本文以2018年云栖大会杭…

c语言cis,c语言小白学习历程第五篇

学习目标&#xff1a;难的咱也看不懂&#xff0c;先把简单的看了再说&#xff0c;加油L 冲冲冲&#xff01;学习时间&#xff1a;2020年11月1日学习产出&#xff1a;回调函数学习&#xff1a;回调函数说白了就是一个通过函数指针调用的函数。如果你把函数的指针Callback(地址)作…

邱跃鹏:软硬件一体化、Serverless、智能化是云计算三大趋势

近日腾讯公司副总裁、腾讯云总裁邱跃鹏在“腾讯Techo开发者”大会上致辞。他表示&#xff0c;云计算未来有三大趋势&#xff0c;即软硬件一体化&#xff08;Cloud Native Hardware&#xff09;、无服务器计算&#xff08;Serverless&#xff09;和智能化&#xff08;Smart&…

uploader什么意思_【已解决】请问下uploader上传失败是什么原因

更新hbuilder后解决了&#xff0c;醉了&#xff0c;希望越做越好直接贴代码吧&#xff0c;麻烦帮忙看下&#xff0c;十分感谢//修改头像,原生模式actionsheetdocument.getElementById("picture").addEventListener(tap, function() {plus.nativeUI.actionSheet({canc…

阿里云喻义:十年牧码,从码农走向工程师的进化之路

有人会问&#xff0c;码农和工程师有区别吗&#xff1f;有什么区别&#xff1f;相信每个人都有不同的理解。 “你敲下的每一行代码&#xff0c;你想过他会如何在计算机上运行吗&#xff1f;你想过你的这一行代码会产生多少cache miss吗&#xff1f;你想过你的这段代码分支预测…

idea出现 Error:(1, 16) java: 非法字符: '\u0a0d'

异常案例&#xff1a; 解决方案&#xff1a;可以将文件的编码格式由utf-16 变为utf-8就可以了。