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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 函数的开发与配置

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

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

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

内容介绍

一、课程概述

二、基本概念

三、开发流程

四、操作演示

五、课程总结

 

一、课程概述

本节课介绍函数计算的开发与配置,通过今天的学习,希望可以基于函数计算开发自己的应用。

本节课主要分为三个部分,基本概念中介绍了函数计算最核心的概念包括服务、函数、触发器,版本联名以及相关的配置。开发流程介绍了基于函数计算开发的完整开发部署的流程,操作演示会带着大家在控制台进行操作,搭建一个基于函数计算的应用,并且进行更新和迭代。

 

二、基本概念

image.png

1、服务

1)基本介绍

服务是函数计算资源管理的单位,同一个服务下有很多函数,这些函数共享服务的网络配置、权限配置、存储配置、日志配置。服务可以对应成一个微服务的概念,这个微服务下面由很多函数共同组成,这些函数具有相同的访问权限,网络配置,日志也会进入到相同的 Log Store 中去,但是这些函数本身的配置可以各不相同。

比如同一个服务下面有的函数内存是3G,有的函数内存是512M,有的函数用Python写。应用比较复杂,同一个应用可以对应多个服务,这是没有强制的绑定关系的。

2)服务配置

接下来就介绍服务的几个核心配置。

①日志配置 Log Config

设置日志服务的日志项目和日志仓库,用于存储和分析函数运行的日志。

开发者的代码在函数计算平台运行,如何查看函数运行产生的日志。比如在 ECS 上或者是在传统的服务器上开发日志都会打到统一的文件里面,通过日志收集工具收集到用户自己的 elastic search中,并且通过这种可视化工具来查看日志或者指标,但是函数计算里面运行代码的机器是由函数计算动态分配的,开发者无法自己收集日志了,函数计算需要帮助开发者投递日志,日志配置就是起到这个作用。

设置日志服务的 project,函数计算会将函数运行中产生的日志投递到开发者的 Log Store 中。但是为了成功投递日志,单单配置 Log Store 还不够,函数计算是没有权限向开发者的 Log Store 里面投递日志的,还需要开发者的授予函数计算向指定的 Log Store 写数据的权限。有了这个权限以后,函数计算就可以名正言顺的向开发者投递日志的。

在这里总结一下日志配置,就是为了让用户有地方配置 Log Store project,允许函数计算向其中去投递函数日志,然后用户可以在 Log Store 中进行进一步的分析。

②文件存储配置 NASConfig

配置 NAS,让函数访问 NAS 文件系统时如同访问本地文件系统一样。

函数计算的每个函数都是独立的,都在不同的执行环境里运行。可以把执行环境理解成是一个容器。如果用户有一些公共文件,希望通过函数共享的话,在传统 Solo 化的开发方式中就是将公共文件放到磁盘里面,各个函数都在磁盘里面的同一个位置读,但是函数计算的机器是函数计算动态分配的,同一个函数的不同实例可能不在同一个主机上面。开发者也没有办法相信这些文件存入磁盘,因为这个机器也是函数计算的。

为解决这个问题函数计算推出了挂载 master 的功能,在服务中挂载了 master 后,函数就可以像访问本地文件系统一样访问 master 上的文件。然后用户是可以在 master 控制台上去对文件进行操作。

③网络配置

网络配置顾名思义就是设置网络的访问能力,函数的网络访问能力主要有两种:一个是函数是否可以访问,有的不需要访问公网,以免产生一些预期之外的公网流量费用。函数计算设置了一个布尔型的开关,默认是开启的,如果不需要访问公网就可以关闭开关。

另一个是函数是否可以访问指定VPCVPC 是专有网络。专有网络中的数据比较机密是不能通过公共网络访问的,如果需要函数访问 VPC 的资源,比如希望函数来访问 VPC 中的 RDS,那就需要授予函数计算访问指定 VPC 的能力。原理是用户授权赋予弹性网卡 INI访问VPC,函数计算将 INI 插入到 XC 中执行用户函数的机器上,从而就可以使函数访问 VPC 中的资源。

④权限

函数计算是云原生的架构,和云上很多服务都会产生交互,阿里云有非常严格的权限限制,函数计算是没有能力访问开发者的其他云资源的。当开发者需要函数计算访问其他云服务的时候,就像显示的授予函数计算权限。权限主要有两个应用场景,一个是授予函数计算访问其他服务的权限,比如刚才提到的授权函数计算访问开发者的日志服务,授权函数创建 INI;另一个是授权函数可以访问开发者的云资源,第一个是授予函数计算,第二个是授权函数。

举个例子是函数代码中需要访问 OSS 获取对象,当然可以把 AK 写在函数代码里面或者是通过环境变量传入 AK。因为 AK 非常机密所以并不想暴露,开发者可以配置服务中的 rolerole 具有访问 OSS 的权限。在函数执行的过程当中,函数计算是会生成一个临时 AK,也可以一起将这个 AK 存储到函数的上下文 contest中,这就是函数代码执行当中的一个输入参数叫 contest,开发者在代码中就可以来使用contest 键和credential 键还有 token,然后来建立一个 OSS Client,这个client就可以访问 OSS 中的资源了。这一页主要是介绍了服务的主要配置,包括日志配置、权限,NAS 还有网络配置。这些配置是服务当中所有函数共享的。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
资源调度 API 开发者
Three入门 【基础知识,并搭建第一个场景】
Three入门 【基础知识,并搭建第一个场景】
115 0
|
10天前
|
大数据 物联网 云计算
课时24:案例分享——中国邮政
在国企改革背景下,中国邮政积极推进行业信息化转型。通过与阿里云合作,中国邮政实现了核心业务云化,解决了高并发、资源不均衡等问题,并构建了PB级大数据平台,推动智能化分拣和寄递业务自动化。石崇斌总经理分享了邮政信息化发展历程及未来规划,强调以用户为中心的理念和技术应用的重要性。
课时24:案例分享——中国邮政
|
4月前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
9天前
课时2:类与对象简介
既然提及了面向对象,那其中有两个极为重要的概念,我们必须率先明晰。要知道,面向对象是一个颇为庞大的话题,然而再庞大的话题也有其核心组成部分,而这核心部分便是类与对象。接下来,我们就针对类与对象展开分析,先来看看类与对象的简介。
|
8天前
|
存储 Java
课时66:案例分析一(学生类)
今天我分享的是关于 Java 中继承概念的案例分析(学生类)。主要分为以下三部分。 1. 案例要求阐述 2. 代码实现展示 3. 编译执行与目的
|
9天前
|
Java
课时6:引用与垃圾产生分析
经过一系列分析,已确认引用传递的本质就是堆内存。对于引用传递,若处理不当,会产生垃圾。本次将针对垃圾产生原因进行简单分析,先让大家有个印象。
|
11天前
|
Python
课时23:字符串简介
今天我分享的是字符串相关内容,我将分为五个部分向大家一一介绍。 1. 字符串基础 2. 引号规则 3. 长字符串用法 4. 转义字符作用 5. 特殊转义字符
|
10天前
|
Java Windows
课时28:方法的定义
方法是编程中用于封装可重复调用代码的工具,类似于现实生活中的标准化操作流程。例如,补办身份证需要按步骤执行,而程序中的方法则可以像“关闭窗口”按钮一样被多次调用,简化代码维护。
|
10天前
|
存储 索引 Python
课时1:列表的简介
列表是Python中用于存储多个有序数据的对象。与单一数据对象不同,列表可以保存多个元素,并按插入顺序排列。可以通过索引访问列表中的元素,索引从0开始。列表支持多种操作,如创建、添加元素、获取长度等。例如,创建一个包含5个朋友名字的列表,并通过索引分别获取每个名字。列表的基本用法包括创建空列表`my_list = []`,添加元素`my_list = [10, 20, 30]`,以及使用`len()`函数获取列表长度。
|
10天前
课时17:运算符简介
课时17介绍运算符在程序开发中的作用,强调运算符的优先级和使用括号简化代码的重要性。编程应避免复杂计算,保持代码简单易懂,推荐使用括号明确运算顺序,提高可读性和准确性。示例展示了复杂的运算符组合可能导致代码难以理解。