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. 注册账号  注册腾讯云账号并登录  https://cloud.tencent.com/  2. 进入控制台  点击右上角进入控制台  3. 云函数-函数服务  左上角选择云产品,输入云函数,选择 云函数-函数服务  4. 新建云函数  新建一个云函数  5. 录入基本信息  符合规范的函数名称  环境选择一个Node.js的环境  选择空白函数  然后下一步  6. 完成创建  直接点击完成,什么都不更改  7. 触发器  然后来到这个界面,点击触发管理  8. 创建触发器  创建触发器,填写相关信息  触发方式-API网关触发  请求方法-GET  鉴权方法-免鉴权  9. 大功告成  体验一下生成的触发器链接  10. 观察接口  观察响应结果与我们的代码  响应结果  我们的云函数代码  关注红色框中的内容  执行方法:index.main_handler  index 对应的就是 index.jsmain_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的逻辑就要用到阿里云的服务了  阿里云侧  先白嫖个服务  阿里云-免费版气象天气服务(cityid)-墨迹天气  根据其文档中的请求示例,我们先构建出 Node版本的方法  const http = require(‘axios’).default  function getNowWeather(cityId = 3) {  const token = ”  const appcode = ”  const nowStatusURL = ‘http://freecityid.market.alicloudapi.com/whapi/json/alicityweather/briefcondition’ // 精简实况的请求URL  const data = `cityId=${cityId}&token=${token}` // 请求参数  const headers = { // header  ’Authorization’: `APPCODE ${appcode}`,  ’Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’  }  // 发送请求  return http.post(nowStatusURL, data, {  headers  }).then(res => res.data)  }  购买服务后根据文档找到token与appcode即可  控制台->API网关->华北2(北京)  为了节约查找token与appcode的时间,下面列一下步骤(吐槽,阿里云的文档太拦了,不方便信息定位)  token与appcode  API网关页面地址  token: 应用管理->选择一个应用->已授权API列表->选择自己要查看的API->点击调试API->调试面板的token参数即是所需参数  appcode: 应用管理->选择一个应用->AppCode面板    郑州做人流多少钱http://www.hnzzxb.com/  最终代码  郑州人流医院http://www.zztjyyfk.com/  index.js  ’use strict’;  const http = require(‘axios’).default  function getNowWeather(cityId = 3) {  const token = ”  const appcode = ”  const nowStatusURL = ‘http://freecityid.market.alicloudapi.com/whapi/json/alicityweather/briefcondition’ // 精简实况的请求URL  const data = `cityId=${cityId}&token=${token}` // 请求参数  const headers = { // header  ’Authorization’: `APPCODE ${appcode}`,  ’Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’  }  // 发送请求  return http.post(nowStatusURL, data, {  headers  }).then(res => res.data)  }  exports.开发云主机域名main_handler = async (event, context) => {  const {queryString:{cityId}} = event  return await getNowWeather(cityId)  };  触发器链接  最后  到此一个云函数就开发完毕了  可以感觉到,如果熟悉创建流程了,只需要几分钟就能创建一个提供服务的API,极大的节约了成本  不懂服务端部署,服务器运维,Linux的开发者可以通过 云函数+云数据库(关系数据库,非关系数据库) 快速搭建一个后端服务  文件存储服务可以使用OSS开发者只需要通过云函数调用各服务提供的API即可完成一个后端服务的构建关于ServerLess如何进行天气API实践就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: 文件怎么上传到虚拟主机

这篇文章运用简单易懂的例子给大家介绍文件怎么上传到虚拟主机,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望开发云主机域名对大家能有所帮助。根据虚拟空间服务商提供的FTP地址、用户名、密码,用FTP相关工具进行相关设置后,即可通过这些工具来上传文件到虚拟主机指…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/17 14:05
下一篇 05/17 14:05

相关推荐