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

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

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

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

整个这个架构搭建分三部分设置,云市场服务购买(免费),编写函数代码,设置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通过引导页面,完成4步操作,填写基本信息的时候,这个地方为了演示效果,选着不认证,一般对外的分组建议都选用阿里云APP认证,确保API请求安全和计量统计。

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

d2b55aa1cd6781435a7ffd125133cb7c9eda114a

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

注意两点:

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

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

84a8acd8a2a80008fd7d11597cc91c7ace7a4ee0

第三步:返回结果示例:

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

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

第四步:测试执行效果

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

通过URL地址发请求效果:

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

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

51cf6d0dd706cad60ba613d2a05bab2284fc866c

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

667dea8f5be674bcc0a9ab8279b50dcb1303ae11




目录
相关文章
|
25天前
|
安全 API 持续交付
要利用阿里云控制API查询您的阿里云资源
【2月更文挑战第33天】要利用阿里云控制API查询您的阿里云资源
17 3
|
28天前
|
网络协议 开发工具 Android开发
应用研发平台EMAS产品常见问题之接入httpdns后 访问重定向的url访问有问题如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
2月前
|
小程序 API 开发者
【产品上新】接口不报错=API成功接入?不妨“验”一下
【产品上新】接口不报错=API成功接入?不妨“验”一下
29 0
|
2月前
|
JSON 缓存 运维
Dataphin数据服务API开启IP白名单调用鉴权
Dataphin数据服务API提供便捷的API开发及运维、应用调用权限管理等功能,为数据业务化提供了坚实的支撑。在应用调用API的时候,Dataphin可支持通过AcessKey方式的调用鉴权。而在企业内部网络中,也可以使用IP白名单方式简化调用。本文将为您介绍如何开启IP白名单的调用鉴权。
|
10月前
|
自然语言处理 安全 搜索推荐
强大的工具:IP归属地查询API
强大的工具: IP归属地查询API
1045 1
|
XML JSON API
免费手机号码归属地API查询接口
一、淘宝网API    API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON 二、拍拍API   API地址:   http://virtual.
4870 0
|
11天前
|
XML JSON API
如何获取易贝EBAY商品详情 API 返回值说明?
易贝(eBay)是一个在线拍卖和购物网站,提供了一个API(应用程序接口)供开发者获取商品详情等信息。使用eBay的API,你可以编写应用程序来查询商品、检索拍卖详情、跟踪订单等。
|
16天前
|
XML JSON API
如何获取阿里巴巴中国站1688商品详情 API 返回值说明
`1688` 是阿里巴巴旗下的一个 B2B(Business-to-Business)电商平台,专注于为企业提供批发和采购服务。`1688` 商品详情 API 是指从阿里巴巴中国站获取商品详细信息的接口。这个 API 通常需要开发者在阿里巴巴开放平台上注册并获取相应的 API 密钥(AppKey 和 AppSecret)才能使用。
|
2月前
|
API 开发工具 数据安全/隐私保护
API接口的对接流程和注意事项
随着互联网技术的发展和应用的普及,API接口已经成为不同系统、不同应用之间进行交互和数据交换的重要方式。API接口使得不同的系统能够互相调用对方的功能,提高了系统的灵活性和扩展性。但是,在进行API接口对接的过程中,需要注意一些流程和事项,以确保对接的顺利进行和系统的稳定运行。
|
2月前
|
运维 小程序 API
社区每周丨支付宝小程序导航栏升级及人脸认证计费规则更新
社区每周丨支付宝小程序导航栏升级及人脸认证计费规则更新
36 0

相关产品

  • 函数计算