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

摘要: 本文对使用自定义域名 + HTTP 触发器搭建 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 触发器的函数
登录 函数计算管理控制台。
新建服务,本示例的服务名称为 web-server,开启【高级配置】,配置日志项目和日志仓库,角色创建方式为新建角色,系统授权模板选择 AliyunLogFullAccess,点击 【授权】,点击【确定】。
在左侧导航栏选择服务,进入到新建的服务中。
单击 【创建函数】,在创建函数页面:

单击 【选择全部的语言】,在下拉菜单中选择 node8 或 python2.7(本示例代码会对两种语言进行介绍)。
选择 【空白函数】。
按如下图示配置 HTTP 触发器,单击 【下一步】。

认证方式选择 anonymous,不需要身份验证,支持匿名访问。
请求方式为此函数可以处理的 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 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()]

此处以 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://blog.51cto.com/14031893/2307496

时间: 2024-11-09 15:22:10

函数计算搭建 Serverless Web 应用(三)- 三分钟搭建 Web 应用的相关文章

函数计算: 让小程序开发进入 Serverless 时代

点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 吴天龙(木吴)阿里云函数计算技术专家 导读:小程序是轻量级的快速迭代的移动应用,对开发者从开发到上线的效率提出了更高的要求.使用函数计算,开发者无需关心后端服务的搭建运维,只需要编写函数就能够为小程序提供稳定可靠并且弹性伸缩的服务.并且随着小程序访问量增加,函数计算能够自动快速地弹性伸缩,即使应对 双11 活动高峰也能够

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

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

从函数计算架构看 Serverless 的演进与思考

作者?|?杨皓然? 阿里巴巴高级技术专家 导读:云计算之所以能够成为 DT 时代颠覆性力量,是因为其本质是打破传统架构模式.降低成本并简化体系结构,用全新的思维更好的满足了用户需求.而无服务器计算(Serverless Computing)作为这个巨大市场的下一个阶段的进化产物,将真正帮助企业实现只专注于业务和构建应用程序,而不必担心 IT 基础设施,这也将成为云服务商未来竞争的关键. 什么是无服务器计算 云原生计算基金会(Cloud Native Computing Foundation, C

搭建个人网站需要的三个步骤

记录一下自己的个人网站的搭建过程.其实网上有很多教程了,有的讲的好,很详细,有的就很笼统了,当然还有抄别人的,我这篇就纯属记录一下自己搭建的过程. 搭建一个个人网站要知道以下三个步骤, 得有自己的一个域名,通过这个域名,在只要可以上网有浏览器的地方,就可以访问. 得有一个空间,来放置网页文件. 将域名和空间绑定,也就是传说中的域名解析.同时,得有自己的网页文件才可以让别人访问的时候看到东西了. 做个比喻吧:域名就是你家地址,通过这个地址,别人才可以找到你家:空间就是你家的大小,多少平米啊,网页文

Serverless 解惑——函数计算如何访问 Mongo 数据库

函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询.性能监控和报警等功能.借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费. 访问 MongoDB 数据库是指在函数计算中通过编写代码调用数据库驱动库通过 TCP 协议实现对数据库进行的插入.查询等操作.通常函数计算中运行的不同函数实例之间是不共享状态

第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号

第三百三十节,web爬虫讲解2-urllib库爬虫-实战爬取搜狗微信公众号 封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import json import random import re import urllib.error def hq_html(hq_url): """ hq_html()封装的爬虫函数,自动启用了用户代理和ip

MyEclipse中web服务器的三种配置方式

初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通过浏览器直接去访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat下conf目录,你会看到有个server.xml,即服务器配置文件.用文本编译器打开,拉到Host标签,在它结束前加上我们的应用程序路径: <Context path="/HelloWeb" docBas

ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认证. 系列文章列表 ASP.NET Web API(一):使用初探,GET和POST数据ASP.NET Web API(二):安全验证之使用HTTP基本认证ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication) 摘要认证原理 在基本认证的方式中,主

三种主流的Web服务实现

三种主流的Web服务实现方案为:REST:表象化状态转变 (软件架构风格)SOAP:简单对象访问协议 XML-RPC:远程过程调用协议 下面分别作简单介绍: REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征.Http协议所抽象