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的逻辑就要用到阿里云的服务了

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5天前
|
分布式计算 Hadoop Serverless
数据处理的艺术:EMR Serverless Spark实践及应用体验
阿里云EMR Serverless Spark是基于Spark的全托管大数据处理平台,融合云原生弹性与自动化,提供任务全生命周期管理,让数据工程师专注数据分析。它内置高性能Fusion Engine,性能比开源Spark提升200%,并有成本优化的Celeborn服务。支持计算存储分离、OSS-HDFS兼容、DLF元数据管理,实现一站式的开发体验和Serverless资源管理。适用于数据报表、科学项目等场景,简化开发与运维流程。用户可通过阿里云控制台快速配置和体验EMR Serverless Spark服务。
|
7天前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之通过 API 调用 /tagger/v1/interrogate 时,出现unsupported protocol scheme "" 错误,如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
9天前
|
JSON 数据可视化 API
技术心得:如何用Python和API收集与分析网络数据?
技术心得:如何用Python和API收集与分析网络数据?
17 2
|
9天前
|
运维 Serverless API
函数计算产品使用问题之如何开启函数计算FC的API模式
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
10天前
|
人工智能 运维 Serverless
函数计算产品使用问题之启动的实例是否有调用api接口停止功能
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
19天前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
54 1
|
4天前
|
数据采集 自然语言处理 算法
淘宝评论的 API 接口获取:技术探索与应用
这篇文稿探讨了淘宝评论API在数据驱动的商业环境中的重要性。API接口使得高效、精准地获取淘宝评论成为可能,帮助企业分析消费者反馈、优化产品和服务,以及训练智能算法。通过API,商家能实时监控评论以快速响应市场变化,同时确保数据合规性和安全性。然而,获取和使用数据涉及复杂的接口调用、数据清洗、反爬虫机制应对等挑战。通过实际案例,展示了API如何促进产品优化、市场研究和智能客服改进。随着技术发展,未来将有更多创新应用,但也需面对更严格的法规监管。
|
26天前
|
JavaScript 关系型数据库 Serverless
Serverless 应用引擎操作报错合集之在调用stable Diffusion函数计算api接口返回,报错:"Not Found"一般是什么原因
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8天前
|
Cloud Native 安全 开发者
云原生架构的演进与实践:从微服务到无服务器计算
本文深入探讨了云原生技术的最新进展,特别关注微服务和无服务器计算模型。通过分析相关研究数据和行业案例,文章揭示了云原生架构如何推动现代应用开发,提升运维效率,并实现资源的最优化配置。文中详细讨论了云原生生态系统中的关键组成部分,包括容器化、自动化管理工具和服务网格,以及它们如何共同促进敏捷性和可扩展性。此外,文章还分析了云原生安全策略的重要性,以及如何在保障安全的同时,保持系统的灵活性和高效性。
|
9天前
|
移动开发 监控 Serverless
函数计算操作报错合集之在调用api时,遇到404问题该怎么办
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。

热门文章

最新文章

相关产品

  • 函数计算