实践篇:搭建无服务器应用--函数计算+API网关+云市场(提供手机号归属地查询服务)

6月5日,阿里云的API网关上线了一个新功能,用户定义API后端服务时可以选择使用Function Compute,这样API网关的用户直接使用函数计算的技术能力,这也使得API网关具备可扩展的后端应用,与此同时函数计算也享受到API网关带来的诸多的好处,例如API的请求流量管控、安全鉴权、访问监控、统计等等。

下面我做一个简单的例子,把函数计算+API网关+云市场三者结合起来,提供一个能查询手机号归属地的服务,在这个框架里不需要配置WEB容器、不需要搭建运行环境、不需要购买负载均衡,通过配置和一段代码就能完成一个高扩容无服务器的应用服务提供出去。

API网关+函数计算+云市场的结合架构图


整个这个架构搭建分三部分设置,云市场服务购买(免费),编写函数代码,设置API网关,调试成功就可以开放API地址了。

  • 云市场申请服务

进入云市场选择手机号归属地查询(免费)服务,开通该服务,获取到服务的APPCode,填写到对应的代码中。

  • 函数计算设置

第一步:创建一个服务

直接在函数控制台上创建一个服务,填写名称和备注,或者选择已有的服务,直接略过这步。

第二步:创建空白函数,选用Python2.7编译环境,设置执行时间:1500ms,执行的内存128MB,因为是调用云市场的接口来取到内容,该接口平均响应时间在1200ms左右。

其中函数代码块:

import logging
import urllib, urllib2, sys
import ssl
import json

def handler(event, context):
  ct = json.loads(event)
  mob = ct['queryParameters']['mob']
  #return ct
  host = 'http://jshmgsdmfb.market.alicloudapi.com' #market aliyun provider
  path = '/shouji/query'
  method = 'GET'
  appcode = 'your appcode'
  querys = "shouji="+ mob
  bodys = {}
  url = host + path + '?' + querys

  request = urllib2.Request(url)
  request.add_header('Authorization', 'APPCODE ' + appcode)
  response = urllib2.urlopen(request)
  content = response.read()

  rep = {
    "isBase64Encoded": "false",
    "statusCode": "200",
    "headers": {
        "x-custom-header": "no"
    },
    "body": content
}
  return json.dumps(rep)

第三步:通过控制台调试程序:

如果想在控制台进行对程序调试,可以在执行页面的触发事件中加入模拟API网关invoke函数请求串:

{
    "body": "",
    "headers": {
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Ca-Api-Gateway": "48351B11-52DB-44EE-8051-CE22A2F69A1C",
        "X-Forwarded-For": "100.68.30.243"
    },
    "httpMethod": "GET",
    "isBase64Encoded": false,
    "path": "/getinfo",
    "pathParameters": {},
    "queryParameters": {
        "mob": "13622439310"
    }
}
  • API网关的设置:

第一步:建立分组:如果没有分组,创建一个分组,如果有,直接略过,看下一步,创建API

第二步:建立API通过引导页面,完成4步操作,填写基本信息的时候,这个地方为了演示效果,选着不认证,一般对外的分组建议都选用阿里云APP认证,确保API请求安全和计量统计。

定义API请求:请求的Path就是你最终暴露给客户的路径,另外入参定义里,需要填写一个入参名,本例中设置mob,传入一个手机号,见下图:

定义API后端服务的时候,需要选择FunctionCompute的类型,填写的Serivce和Function都是事先在函数计算中设置好,这个地方填写进去即可,

注意两点:

1、你API网关所在的区域跟函数计算的区域同一个,避免走公网响应时间变长

2、在API网关上设置的超时时间不小于你函数执行的时间,避免API网关提前终止请求响应。

第三步:返回结果示例:

参考手机号归属地提供商的返回值,填写到API网关中,代码如下:

{
  "status": "0",
  "msg": "ok",
  "result": {
    "province": "浙江",
    "city": "杭州",
    "company": "中国移动",
    "cardtype": "GSM"
  }
}

第四步:测试执行效果

点击调试API页面,在请求串里填写手机号,执行后,即可看到手机号归属地的返回。

通过URL地址发请求效果:

在API网关中,如果自己有域名,在分组中设置自己的域名,也可以通过系统提供的二级域名来简单试验一下,看下图,把地址拼接完整的请求地址,可以通过浏览器试验一下效果如何。

在分组详情中可以查到二级域名:

在浏览器请求的演示效果:

时间: 2024-12-02 12:03:24

实践篇:搭建无服务器应用--函数计算+API网关+云市场(提供手机号归属地查询服务)的相关文章

10.11杭州Clouder lab 十分钟搭建共享应用1:函数计算及表格存储操作说明

欢迎大家来到无服务器(Serverless)编程的阿里云clouder lab实验课参与学习. 这几年,共享经济越来越火,大到共享汽车.共享电动车,小到共享雨伞,共享充电宝.人人参与,人人收益是共享经济最大的特点,共享经济提高了社会资源的利用率,也大大方便了我们的生活. 也正式由于人人参与的特点,共享经济给底层的系统架构带来了非常大的挑战.以目前主流的共享单车为例,单车数量达到千万之巨,日订单数以十亿百亿计,访问流量的波峰波谷非常明显,而传统的架构方案很难满足这种业务增长迅速,访问波峰波谷明显的

2017企业IT的7大趋势:雾计算,寡头垄断云市场……

随着年初Snap的IPO,拉斯维加斯巨型消费电子展的结束,科技界的许多人最近一直在关注消费技术的创新.但我认为2017年企业IT也将出现较少为人注意到的结构性变化:这与云计算,大数据甚至基础计算机芯片的趋势相关,由于新的需求产生,数据和分析的大量涌现,许多公司和组织无法适应. 这些趋势可能不如聊天应用或者能说话的机器人那么性感.但是,在本文中,我将对2017年B2B,企业IT的7大趋势进行预测,这些趋势将推动企业数十亿美元的IT领域,最终将创造数十亿美元的市场价值. 1.从"云计算"到

阿里云函数计算 - 事件驱动的serverless计算平台

从2006年AWS发布的第一个云服务S3开始,存储,计算等IT基础设施的能力纷纷被以服务的方式提供给用户.过去十年,云服务深刻的改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进,新的服务形态不断涌现,无服务器计算(serverless computing)就是其中之一.阿里云函数计算,是一种事件驱动的无服务器计算服务.用户只需要编写并上传代码,阿里云函数计算会以可靠的方式执行代码,并随访问压力平滑伸缩.用户可以将代码关联多种事件源,由事件触发,也可通过http请求的方式直接调用.

解构国内首个函数计算,看看ServerLess有多牛!

对于Web应用程序,大多数都需要服务器在数据中心或在云端运行,这些服务器需要加以管理.维护.打补丁和备份,这些是很耗费时间的工作,不仅常常需要专门的操作人员,而且还很难搭建并高效地运行一个大的环境. 4月26日,在云栖大会・南京峰会上,阿里云宣布函数计算(Function Compute)启动邀测.阿里云函数计算是一个事件驱动的全托管计算服务,通过函数计算,用户无需再管理服务器等基础设施,只需编写代码并上传.函数计算会为用户准备好计算资源,以弹性.可靠的方式运行代码,并提供日志查询.性能监控.报

【直播回顾】阿里云技术系列直播:异构计算、函数计算、自研数据库…

各位小伙伴,阿里云将在10月份杭州云栖大会发布系列新品,为了让大家更好地了解本次系列新品,我们组织了10场技术直播,分享各自技术实战. 下面是议程及嘉宾议题详情. 本次活动已结束,回顾正在生成中,敬请期待! 直播议程 时间 直播议题 14:00-14:40 云数据库POLARDB,时代从此划分 ECS最优性价比实例解析 14:40-15:20 移动云,一站式移动研发解决方案 阿里云异构计算产品家族 15:20-16:00 通过MaxCompute Studio实践大数据时代的DevOps 函数计

无服务器的微服务

在 2015年的LinuxCon/ContainerCon 上我呈现了一次演示驱动的演讲,标题叫做"没有服务器的微型服务". 其中,我创建了一个图片处理的微型服务,将其部署到了多个区域,构建了一个移动 app 并使用它(译者注:指的是这个微型服务)作为后台,添加了一个使用了 Amazon API 网关的基于 HTTP 的 API 和一个网站,并且对它进行了单元和负载测试,所有这些都没有用到任何服务器. 这篇博文对演讲的细节进行了重制,为你逐步完成所有必要的比周,并深入到了架构中去.而高

15+文章详细讲述Serverless:开启函数计算时代!(含PDF下载)

在2017年云栖大会·南京峰会上,阿里云发布新产品--函数计算. 阿里云函数计算(Function Compute)是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码. 函数计算是Serverless新互联网技术架构的执行环境,Serverless应用逻辑并非全部在服务端实现,而是采用FaaS(Function as a Service)架构,通过功能组合来实现应用程序逻辑.Serverles

仅为代码实际运行资源付费 解构国内首个函数计算

4月26日,在云栖大会・南京峰会上,阿里云宣布函数计算(Function Compute)启动邀测.这是国内首个事件驱动的无服务器计算平台.用户按需调用.按需付费,无需管理服务器等基础设施,特别适用于应用场景中有明显波峰波谷的企业. 通过函数计算,用户无需再管理服务器等基础设施,只需编写代码并上传.函数计算会为用户准备好计算资源,以弹性.可靠的方式运行代码,并提供日志查询,性能监控,报警等功能. 借助于函数计算,可以快速构建任何类型的应用和服务,无需管理和运维.更棒的是,只需要为代码实际运行消耗

仅为代码实际运行资源付费 解构阿里云函数计算

4月26日,在云栖大会・南京峰会上,阿里云宣布函数计算(Function Compute)启动邀测.这是一个事件驱动的无服务器计算平台.用户按需调用.按需付费,无需管理服务器等基础设施,特别适用于应用场景中有明显波峰波谷的企业. 通过函数计算,用户无需再管理服务器等基础设施,只需编写代码并上传.函数计算会为用户准备好计算资源,以弹性.可靠的方式运行代码,并提供日志查询,性能监控,报警等功能.借助于函数计算,可以快速构建任何类型的应用和服务,无需管理和运维.更棒的是,只需要为代码实际运行消耗的资源