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

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 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的逻辑就要用到阿里云的服务了

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
监控 安全 测试技术
深入理解后端技术中的API设计原则
在当今数字化时代,后端技术已成为构建高效、可扩展和安全应用程序的关键因素。本文将探讨后端开发中的API设计原则,包括RESTful架构、版本控制以及安全性等方面,旨在帮助开发者提升API设计的质量和用户体验。通过对这些原则的深入理解,可以更好地满足业务需求并提高系统的可靠性。
74 0
|
3天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
36 12
|
12天前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
12天前
|
存储 弹性计算 关系型数据库
活动实践 | 告别资源瓶颈,函数计算驱动多媒体文件处理测评
本方案介绍了一种高效处理文件的方法,适用于企业办公和社交媒体应用。通过阿里云的函数计算、对象存储OSS和轻量消息队列,实现文件的异步处理,如格式转换和水印添加,有效减轻了核心应用的负担,提高了业务稳定性和资源利用率。方案包括云服务器ECS、云数据库RDS、OSS存储等组件,支持快速部署和资源清理。
|
24天前
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
28天前
|
弹性计算 算法 搜索推荐
活动实践 | 通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
ComfyUI是基于节点工作流稳定扩散算法的新一代WebUI,支持高质量图像生成。用户可通过阿里云函数计算快速部署ComfyUI应用模板,实现个性化定制与高效服务。首次生成图像因冷启动需稍长时间,之后将显著加速。此外,ComfyUI允许自定义模型和插件,满足多样化创作需求。
|
28天前
|
弹性计算 自然语言处理 搜索推荐
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。
|
1月前
|
运维 监控 Serverless
揭秘云计算中的Serverless架构:优势、挑战与实践
揭秘云计算中的Serverless架构:优势、挑战与实践
|
2月前
|
安全 物联网 API
API技术之身份认证
【10月更文挑战第17天】身份认证是API安全的核心,确保API可信可控。
API技术之身份认证
|
2月前
|
JSON 前端开发 测试技术
API接口 |产品经理一定要懂的10%技术知识
作为产品经理,掌握约10%的技术知识对处理API相关工作至关重要。这包括理解API的基本概念及其作为数据交换的桥梁作用;熟悉JSON和XML两种主要数据格式及其特点;了解常见HTTP请求方法(GET、POST、PUT、DELETE)及响应状态码;关注API安全性,如认证授权和数据加密;掌握API版本管理和错误处理技巧;重视性能优化,以提升用户体验;参与API联调测试,确保稳定可靠;并与前后端团队紧密协作,选择合适的第三方API服务,推动产品高效开发。

相关产品

  • 函数计算