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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 通过该例子,把函数计算+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




目录
相关文章
|
5月前
|
人工智能 运维 安全
函数计算支持热门 MCP Server 一键部署
云上托管 MCP 搭建 AI Agent 将成为趋势。函数计算 FC 目前已经支持开源 MCP Server 一键托管,欢迎体验。
1022 114
|
5月前
|
Serverless Python
借助 serverless 将 MCP 服务部署到云端
本文介绍了如何将 MCP 服务通过 SSE 协议部署到云端,避免本地下载和启动的麻烦。首先,使用 Python 实现了一个基于 FastMCP 的网络搜索工具,并通过设置 `transport='sse'` 启用 SSE 协议。接着,编写客户端代码测试服务功能,确保其正常运行。随后,利用阿里云函数计算服务(FC 3.0)以 Serverless 方式部署该服务,包括创建函数、配置环境变量、添加依赖层以及部署代码。最后,提供了客户端测试方法和日志排查技巧,并展示了如何在不同工具(如 Cherry-Studio、Cline 和 Cursor)中配置云端 MCP 服务。
1046 10
借助 serverless 将 MCP 服务部署到云端
|
6月前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单
Serverless + AI 让应用开发更简单
198 2
|
JavaScript 关系型数据库 Java
|
文字识别 Serverless 对象存储
10分钟-使用阿里云函数计算构建你的OCR智能识别云端小程序
本文介绍使用支付宝小程序与函数计算的完成OCR光学字符识别的例子,十分钟快速开发一个轻量级可扩展云端小程序
17494 0
|
弹性计算 Serverless 开发工具
快速搭建 Serverless 人脸识别离线服务
本文将重点介绍如何快速地通过函数计算与函数工作流部署一个定时离线批量处理图片文件并标注出人脸的服务。
16159 0
|
前端开发 Serverless API
开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
36286 11
|
Kubernetes Serverless 容器
玩转阿里云Serverless Kubernetes新功能
阿里云Serverless Kubernetes发布新功能:开放杭州区域,Exec/Attach支持,服务发现,Ingress,Service Account,子账号支持。
18374 1
|
IDE Serverless 开发工具
WebIDE 使用指南
背景 为了解决函数计算本地环境差异和配置繁琐的问题,在此背景下,就有了我们的 WebIDE 产品,WebIDE 能让函数的开发、测试和部署更加流畅,进一步降低了函数计算的学习成本和进一步缩短了函数的开发周期。
17424 2
|
Java Serverless Maven
玩转阿里云函数计算(一)----Java Http 触发器极速迁移传统 Spring 应用
前言 阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式,来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台服务。
23017 1

热门文章

最新文章

相关产品

  • 函数计算