实践篇:搭建无服务器应用--函数计算+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




目录
相关文章
|
7月前
|
人工智能 运维 安全
函数计算支持热门 MCP Server 一键部署
云上托管 MCP 搭建 AI Agent 将成为趋势。函数计算 FC 目前已经支持开源 MCP Server 一键托管,欢迎体验。
1191 114
|
7月前
|
人工智能 JavaScript Serverless
从零开始开发 MCP Server
文章介绍了如何利用Serverless Devs CLI工具从零开发并一键部署MCP Server至阿里云函数计算(FC)。涵盖MCP协议背景、Serverless Devs工具简介、本地初始化与开发MCP Server步骤、通过SSE协议部署及测试MCP Server方法,以及三种客户端接入方式。读者可快速上手构建支持LLM扩展交互能力的智能体服务,并使用内置LLM的Inspector进行调试。文末还提供了更多资源和交流渠道。
1987 63
从零开始开发 MCP Server
|
7月前
|
Serverless Python
借助 serverless 将 MCP 服务部署到云端
本文介绍了如何将 MCP 服务通过 SSE 协议部署到云端,避免本地下载和启动的麻烦。首先,使用 Python 实现了一个基于 FastMCP 的网络搜索工具,并通过设置 `transport='sse'` 启用 SSE 协议。接着,编写客户端代码测试服务功能,确保其正常运行。随后,利用阿里云函数计算服务(FC 3.0)以 Serverless 方式部署该服务,包括创建函数、配置环境变量、添加依赖层以及部署代码。最后,提供了客户端测试方法和日志排查技巧,并展示了如何在不同工具(如 Cherry-Studio、Cline 和 Cursor)中配置云端 MCP 服务。
1281 10
借助 serverless 将 MCP 服务部署到云端
|
8月前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单
Serverless + AI 让应用开发更简单
317 2
|
7月前
|
人工智能 Serverless 定位技术
MCP云托管最优解,揭秘国内最大MCP中文社区背后的运行时
本文介绍了魔搭(ModelScope)推出的全新MCP广场,将提供1500多种MCP服务。文章探讨了云上托管MCP服务的挑战,如多租户隔离、快速生成SSE地址及稳定性要求。为解决这些问题,魔搭选择阿里云函数计算作为运行时托管平台,因其具备事件触发、毫秒级弹性、会话亲和性、自动鉴权及多语言支持等优势。函数计算还针对MCP特性优化,如支持STDIO模式自动转换为SSE服务、发布Debian12运行时等。文章总结了Serverless在MCP托管领域的技术领先性,并展望未来更多AI应用功能的发布。
|
JavaScript 关系型数据库 Java
|
文字识别 Serverless 对象存储
10分钟-使用阿里云函数计算构建你的OCR智能识别云端小程序
本文介绍使用支付宝小程序与函数计算的完成OCR光学字符识别的例子,十分钟快速开发一个轻量级可扩展云端小程序
17577 0
|
弹性计算 Serverless 开发工具
快速搭建 Serverless 人脸识别离线服务
本文将重点介绍如何快速地通过函数计算与函数工作流部署一个定时离线批量处理图片文件并标注出人脸的服务。
16226 0
|
Kubernetes Serverless 容器
玩转阿里云Serverless Kubernetes新功能
阿里云Serverless Kubernetes发布新功能:开放杭州区域,Exec/Attach支持,服务发现,Ingress,Service Account,子账号支持。
18432 1
|
前端开发 Serverless API
开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
36437 11

相关产品

  • 函数计算