课时4:函数的开发与配置(三)

简介: 函数的开发与配置

Serverless AI训练营:课时4:函数的开发与配置(三)

课程地址:https://developer.aliyun.com/trainingcamp/1eeaedf056f14ad98e9986c31068e939?spm=a2c6h.26142516.J_2566289780.1.37c67cbd7bCsFs

课时4:函数的开发与配置(三)

函数名称设置成 hello word,环境也是知识的运行环境,函数入口就是函数计算从哪里开始执行这一代码呢?函数的执行内存超时时间,单实例并发度发布是这样。

image.png

函数计算是在实例里面执行,这个实例默认情况下是同时只能执行一个请求的。如果有更多请求的话则会调度更多的实例来进行更多的请求,但是有的时候是 L密集型这些场景一个实例执行一个请求就会浪费,所以用户可以选择一个实例,同时可以并发多少请求是可指定的。

函数创建完成后会有一个默认的代码,左边是文件数,右边是代码其实就是一个Hello wordCallback 是在 js 里面,主动掉了 callback 之后函数计算就认为这个函数已经执行完成了,就可以将这个实例来进行冻结,等待接受下一次请求。

这就可以看到当前的结果以及一些日志,也可以在刚才配置的 Log Store 中。简单查询就是 request ID,可以把它的日志展示出来。高级查询就是把查询的页面展示出来,可以查到这个 Log Store 下所有的日志。

现在认为假如代码就在 Latest 当前版本上面已经开发完成了,就可以上线了,第一次上线的就是 hello world 这么一个应用,上线要发布一个版本,在其下创建一个别名,版本是服务级别的,发布了这个版本之后,这个服务下面所有的函数都会跟着发一个版本。要发布一个版本 hello word First Version。这个版本的ID是版本1,它的描述中刚才写的,对此可以先来试一下是否可以触发指定版本的函数,再把函数选择版本1。在发布的版本之后,代码是不能编辑的,只有 Latest版本可以编写。这个代码是可以被执行的。然后发布就行了。

接下来创建一个别名,指向刚才发布的这个版本,新建编名线上版本的主版本和灰度版本,主版本就是百分百流量都在这里,灰度版本就是切多少流量到其他版本上,所以就只有主版本,百分之百的流量都到版本上进行确定。

接下来就可以通过别人来访问用户,可以通过别人来访问开发的应用了。然后就需要开发,就是产品经理有了新的需求要开发迭代,就在 Latest 版本上面开发。最新的版本都要改成new world,就应该换一个版本2。这里不需要新建一个别名了,只要将刚才的别名指向版本2就可以。

版本全部进行比较危险,所以把新版本灰度50%的流量,其实只有10%就可以只是怕演示的过程中不容易将流量打到新的版本上,所以是一个比较明显的50%。现在的请求应该是有一半的概率触发版本1,一半的概率来执行版本2的,就是一半的概率是输出hello word,一半的概率输出 new word

 

 image.png

选择别名之后是看不到代码的,别名下是没有任何资源的,它只是一个指针但是可以来执行它。然后指向了版本二,执行了版本二的代码,大概是一个50%的比例,所以在这里搭建了一个简单的应用,就是hello word 的应用,并且模拟了这个应用的更新迭代以及新版本的发布和上线,在有新的版本发布的时候只需要在函数计算这里发布版本,并且将别名指向最新的版本,就可以完成一次应用的升级了。

代码如下:

'use strict';
/*
To enable the initializer feature
(https://help.aliyun.com/document_detail/156876.html) please implement the initializer function as below: exports.initializer=(context,callback)=>{ 
console.log('initializing');
 callback(null,'');};*/
exports.handler=(event,context,callback)=> {    
console.log('hello world');    
callback(null, "hello world');  
}

五、课程总结

今天介绍了函数计算的基本配置,包括服务和服务配置,函数和函数配置,触发器,版本和版本配置还有别名,并且带领大家一同搭建了一个简易的函数计算应用,课程进行到这里。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
解决 Vant中 输入框(Field)组件获取不到输入值
解决 Vant中 输入框(Field)组件获取不到输入值
2484 0
解决 Vant中 输入框(Field)组件获取不到输入值
|
机器学习/深度学习 传感器 算法
行人闯红灯检测:基于计算机视觉与深度学习的智能交通解决方案
随着智能交通系统的发展,传统的人工交通违法判断已难以满足需求。本文介绍了一种基于计算机视觉与深度学习的行人闯红灯自动检测系统,涵盖信号灯状态检测、行人检测与跟踪、行为分析及违规判定与报警四大模块,旨在提升交通管理效率与安全性。
|
消息中间件 大数据 分布式数据库
分布式事务:构建可靠分布式系统的基石
【4月更文挑战第21天】分布式事务是确保现代分布式系统数据一致性和完整性的关键技术,涉及多服务协调,面临网络延迟、故障和数据一致性等问题。本文探讨了分布式事务的原理,包括两阶段提交、三阶段提交、分布式锁和补偿机制等解决方案,并阐述其在微服务、分布式数据库和消息队列等场景的应用。面对挑战,我们需要持续优化分布式事务处理机制。
|
存储 算法 计算机视觉
MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
1025 0
MATLAB数字图像处理 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)
|
开发框架 JavaScript 前端开发
快速入门uniapp——从环境搭建到项目实践(上)
快速入门uniapp——从环境搭建到项目实践(上)
3141 0
快速入门uniapp——从环境搭建到项目实践(上)
|
安全 Linux
如何从 Fedora 36 升级到 Fedora 37?
如何从 Fedora 36 升级到 Fedora 37?
292 0
|
设计模式 安全 Java
AQS:Java 中悲观锁的底层实现机制
本文主要介绍了 1. AQS 的实现原理:同步阻塞队列 2. Condition 的实现原理:条件等待队列
344 0
AQS:Java 中悲观锁的底层实现机制
|
存储 人工智能 算法
【每日基础算法】线段树 - 树状数组
【每日基础算法】线段树 - 树状数组
355 0
【每日基础算法】线段树 - 树状数组
|
数据库 Android开发 索引
Xamarin.Android开发实践(十四)
原文:Xamarin.Android开发实践(十四) Xamarin.Android之ListView和Adapter 一、前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项)。
1358 0