Serverless之云函数实践-天气API | 🏆 技术专题第七期征文(一)

简介: Serverless之云函数实践-天气API | 🏆 技术专题第七期征文(一)

前言


云计算是大势所趋

Serverless 架构即“⽆服务器”架构,它是一种全新的架构方式,是云计算时代⼀种⾰命性的架构模式

FaaS(Function as a Service - 函数即服务) 是在无状态容器中运行的事件驱动型计算的执行模型

☁️云函数算是FaaS的一种具体的形式,由云商(腾讯云,阿里云,七牛云等等)提供计算平台,开发者只需关注函数逻辑的实现,将服务器相关的配置管理工作统统交给云商去做,不再花大精力去管理服务器

我们只需要提供一段代码,由云商研制的 FaaS 方案帮我们选择语言对应技术栈的最佳实践,基于内置的扩展机制按实际需要,进行动态扩展计算资源,轻松部署服务到公网,并提供可靠的监控、报警保障,不需要以前一样,服务器资源不是大部分时间处于闲置状态,就是遇到超大浏览需要紧急扩容

给 FaaS 一个函数,就能上线一个高可用的服务

简单的服务接口开发的专业性要求降低了,前端有了更大的发挥空间,包括但不限于:

  • BFF(Backend For Frontend)
  • SSR(Server-Side Rendering)

上面简单的介绍了一下“云函数”,有一点抽象,下面就结合实操,来搞一个”实用的“


网络异常,图片无法展示
|


☁️搞一个简单的天气查询API


就像这样的:点我体验

参数:cityId 地区参照表


所使用到的技术与平台


  • Node.js (云函数选用JavaScript语言)
  • 腾讯云 - 免费的云函数服务
  • 阿里云 - 免费的墨迹天气查询服务

下面开始手把手教程


腾讯云侧


1. 注册账号


注册腾讯云账号并登录

cloud.tencent.com/


2. 进入控制台


点击右上角进入控制台


网络异常,图片无法展示
|


3. 云函数-函数服务


左上角选择云产品,输入云函数,选择 云函数-函数服务


网络异常,图片无法展示
|


4. 新建云函数


新建一个云函数


网络异常,图片无法展示
|


5. 录入基本信息


  • 符合规范的函数名称
  • 环境选择一个Node.js的环境
  • 选择空白函数
  • 然后下一步


网络异常,图片无法展示
|


6. 完成创建


直接点击完成,什么都不更改


网络异常,图片无法展示
|


7. 触发器


然后来到这个界面,点击触发管理


网络异常,图片无法展示
|


8. 创建触发器


创建触发器,填写相关信息

  • 触发方式-API网关触发
  • 请求方法-GET
  • 鉴权方法-免鉴权


网络异常,图片无法展示
|


9. 大功告成


体验一下生成的触发器链接


网络异常,图片无法展示
|


10. 观察接口


观察响应结果与我们的代码


响应结果


网络异常,图片无法展示
|


我们的云函数代码


网络异常,图片无法展示
|


关注红色框中的内容


  • 执行方法:index.main_handler
  • index 对应的就是 index.js
  • main_handler就是就是index.js中对外暴露的 main_handler方法


再看代码


'use strict';
exports.main_handler = async (event, context) => {
    console.log("Hello World")
    console.log(event)
    console.log(event["non-exist"])
    console.log(context)
    return event
};


根据上上图返回的结果可知其对应的是event里面的内容: 即我们可以在event中取到我

们请求的参数,header,body等信息,便于我们执行后续逻辑

context的内容(console.log的内容)在哪里看?


11. 日志查询


网络异常,图片无法展示
|


在日志查询面板可以查询到我们接口的调用信息,响应状态与log的内容


12. 安装依赖的模块


这个和本地安装差不多,一个敲命令,一个点按钮

我们使用本地终端创建一个package.json文件


npm init -y


网络异常,图片无法展示
|


package.json


{
  "name": "faas",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}


如安装axios,本地执行安装先


yarn add axios
# or
npm i axios


此时的package.json


{
  "name": "faas",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.21.0"
  }
}


在平台上创建一个 package.json文件,并把上述内容粘贴进去,ctrl/command + S 保存修改的内容


网络异常,图片无法展示
|

网络异常,图片无法展示
|


选择在线安装依赖,然后点击保存


网络异常,图片无法展示
|


安装完成后 会出现 node_modules目录


网络异常,图片无法展示
|


JS云函数创建相关流程,差不都陈述完毕

下面开始我们的代码编写


天气云函数编写


代码同步到线上的方式

  • 可以本地编辑后上传文件
  • 使用腾讯云的cli工具上传
  • 复制粘贴


这里比较简单我们就复制粘贴了

先简单编写一下大体结构,然后点击保存,再访问刚刚的触发器链接观察返回的结果

index.js


'use strict';
const http = require('axios').default
function getNowWeather(cityId = 3) {
    // 待编写
    return {
        data:{
            cityId
        }
    }
}
exports.main_handler = async (event, context) => {
    // 结构取得url中传递的参数
    const { queryString: { cityId } } = event
    return getNowWeather(cityId)
};


下面实现getNowWeather的逻辑就要用到阿里云的服务了

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
11月前
|
JSON API 数据格式
亚马逊商品评论API接口技术指南
亚马逊商品评论API可程序化获取指定ASIN商品的用户评价,包含评分、内容、时间等结构化数据。需企业认证并遵守使用协议,日调用上限500次。支持分页与排序查询,适用于竞品分析、口碑监测等场景,结合SP-API可构建完整电商数据方案。(238字)
1007 3
|
11月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
1025 2
|
11月前
|
JSON 算法 API
1688比价API接口:实现商品价格高效比较的技术指南
本文介绍1688比价API的核心功能与实战应用,涵盖接口调用、Python代码实现及价格比较算法优化。助您快速集成商品比价功能,提升电商开发效率。
1457 3
|
11月前
|
JSON 安全 API
淘宝天猫上货API接口技术指南
本文介绍淘宝天猫上货API,详解其RESTful接口原理、认证流程及Python调用示例。涵盖商品添加、签名生成、响应处理,并提供代码实现与最佳实践,助力开发者高效实现自动化批量上架。
1221 3
|
11月前
|
JSON 搜索推荐 API
拼多多商品详情API技术指南
拼多多商品详情API(pdd.goods.detail.get)支持通过商品ID获取商品标题、价格、销量、图片、库存及评价等详细信息,适用于电商数据分析、竞品监控与价格策略优化,返回标准JSON格式,便于集成开发。
1495 1
|
11月前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
2270 1
|
11月前
|
JSON 安全 API
1688批量上货API接口技术指南
本文介绍1688批量上货API的集成与使用,涵盖认证、请求构建及错误处理。通过Python示例代码,助您实现商品信息批量上传,提升电商运营效率。
1035 1
|
11月前
|
存储 缓存 算法
淘宝买家秀 API 深度开发:多模态内容解析与合规推荐技术拆解
本文详解淘宝买家秀接口(taobao.reviews.get)的合规调用、数据标准化与智能推荐全链路方案。涵盖权限申请、多模态数据清洗、情感分析、混合推荐模型及缓存优化,助力开发者提升审核效率60%、商品转化率增长28%,实现UGC数据高效变现。
|
12月前
|
供应链 安全 API
唯品会:利用银行转账API实现企业采购对公支付的技术实践
企业采购支付面临合规、效率与对账难题。唯品会通过银行API实现银企直连,构建安全高效对公支付系统,支持ISO 20022标准与多重风控,支付耗时从72小时降至90秒,错误率下降98%,推动供应链数字化升级。(236字)
|
11月前
|
JSON API 开发者
1688按关键词搜索商品的API接口技术指南
本文介绍如何使用1688开放平台API实现商品关键词搜索,涵盖API概述、权限申请、调用步骤、Python代码示例及注意事项,助力开发者高效集成商品搜索功能,适用于电商自动化、价格监控等场景,内容基于官方文档,确保准确可靠。
1456 0

热门文章

最新文章

相关产品

  • 函数计算