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

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

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

简介

阿里云的 函数计算(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. 单击 【创建函数】,在创建函数页面:

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

      • 认证方式选择 anonymous,不需要身份验证,支持匿名访问。
      • 请求方式为此函数可以处理的 HTTP 请求方式。
        HTTP 触发器配置示例
    4. 创建函数并填写所在服务、函数名称、描述信息和运行环境信息。
    5. 单击【下一步】。
    6. 核对信息无误后,单击【创建】。

然后编写函数代码

# -*- 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 对域名进行解析请参考 域名解析

步骤三:绑定自定义域名

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

  1. 登录 函数计算控制台
    控制台1
  2. 在控制台首页右侧点击进入 自定义域名管理,即可绑定自定义域名并设置路由。
    控制台2

控制台3

步骤四:测试

设置成功后,访问自定义域名进行测试,示例演示通过命令行 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 触发器文档
HTTP 触发器示例
绑定自定义域名
绑定自定义域名示例
联系我们
埋点测试

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
9天前
|
缓存 前端开发 安全
GraphQL在现代Web应用中的应用与优势
GraphQL是一种现代的API查询语言,它在现代Web应用中得到了广泛的应用,因为它提供了一种高效、灵活且强大的方式来获取数据
18 0
|
1天前
|
XML 网络协议 Java
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是基于WSDL、SOAP、RDF和RSS等标准的网络应用程序组件技术。WSDL描述服务接口和消息格式,SOAP用于结构化信息交换,RDF描述网络资源,RSS则用于发布网站更新。Web服务特点是自包含、自描述,基于开放协议,可重用且能连接现有软件。WSDL文档包含`types`、`message`、`portType`和`binding`元素,定义服务操作和协议。SOAP协议规定消息格式,通过HTTP等传输。
7 1
|
1天前
|
前端开发 JavaScript Java
Java语言在Web前端开发中的技术应用
Java语言在Web前端开发中的技术应用
|
2天前
|
缓存 自然语言处理 数据库
构建高效Python Web应用:异步编程与Tornado框架
【5月更文挑战第30天】在追求高性能Web应用开发的时代,异步编程已成为提升响应速度和处理并发请求的关键手段。本文将深入探讨Python世界中的异步编程技术,特别是Tornado框架如何利用非阻塞I/O和事件循环机制来优化Web服务的性能。我们将剖析Tornado的核心组件,并通过实例演示如何构建一个高效的Web服务。
阿里云web应用
设备端将图片编码为base64发送至物联网平台,在web界面配置图片选择物联网平台配置的数据(base64),实现设备向云平台的图片的上传,以及在web界面上显示图片。
|
2天前
|
设计模式 存储 前端开发
Java的mvc设计模式在web开发中应用
Java的mvc设计模式在web开发中应用
|
2天前
|
前端开发 JavaScript API
Web应用如何实现跨平台能力?
【5月更文挑战第30天】Web应用如何实现跨平台能力?
10 1
|
2天前
|
存储 人工智能 应用服务中间件
Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
【5月更文挑战第30天】Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
18 2
|
4天前
|
Python
使用Python构建一个简单的Web应用
使用Python构建一个简单的Web应用
21 0
|
4天前
|
JavaScript 前端开发 数据可视化
Vue.js 与 ViewDesign:为企业级 Web 应用提供高效可靠的解决方案
Vue.js 是一款开源的渐进式 JavaScript 框架,擅长构建用户界面,适用于各种规模的应用。其特点包括渐进式设计、虚拟 DOM、响应式数据绑定和组件化。ViewDesign(前身为 iView)是基于 Vue.js 的企业级 UI 组件库,提供丰富的组件、遵循企业设计规范,并支持高度定制。两者结合,能提升开发效率、保证界面一致性、简化维护,且两者生态均得到良好支持。Vue.js 3 的支持使得开发更加现代和高效。

热门文章

最新文章

相关产品

  • 函数计算
  • http://www.vxiaotou.com