首页 > 其他分享 >使用函数计算FC的主要步骤

使用函数计算FC的主要步骤

时间:2024-05-16 14:09:33浏览次数:24  
标签:触发器 服务 函数 步骤 FC 计算 创建

使用函数计算FC的主要步骤

初步了解函数计算FC的运行原理和使用流程以后,小陈准备动手开始使用函数计算FC来实现业务需求。在动手前,为了避免走错路耽误了功能的上线进度,小陈决定再找大刘确认一下。

小陈:师傅,我了解了函数计算FC的大致使用流程,感觉基础功能使用起来应该不复杂。

大刘:没错,FC产品很好的贯彻了Serverless的架构思想,在使用中屏蔽了资源层面的配置操作,所以操作起来并不复杂。你只需要创建服务和相关配置,然后上传代码并进行调试和部署就可以体验到函数的功能了。

小陈:嗯,那我就按照这个步骤来尝试一下吧,期待它能快速实现我的需求。

大刘:眼过千遍,不如手过一遍,你尝试一下才能发现会有什么困难,有问题随时来找我。

 

接下来开始尝试体验阿里云函数计算FC的功能吧。注:可以在本课程配套的实验环节中体验具体操作。

1)开通函数计算FC服务

首次进入函数计算FC控制台可能会提示创建AliyunFcDefaultRole 默认角色,我们点击创建即可(如未弹出授权界面表示已经授权,我们可以直接进入下一步);

2)创建并配置存储图片和素材的对象存储

我们使用阿里云对象存储OSS来存放网站的图片及相关素材文件,后续我们可以通过配置函数计算触发器的方式使OSS和FC联动工作,比如在OSS中的行为事件(如上传文件)自动触发函数的执行。

首先我们需要创建相应的OSS Bucket,由于Bucket的名称是全局唯一的,尽量使用与用户和应用有关联的可读性较强的名称,既避免重名也便于记忆。

Bucket创建完成后,我们在Bucket的文件列表中,创建source、resource目录,为后续操作做准备。source目录用于上传图片,resource目录用于上传压缩文件。

3)在FC中创建服务并添加OSS角色授权

在函数计算FC控制台选择服务及函数,选择创建服务,填写服务名称,然后点击确定按钮完成服务创建。

服务(Service)是函数计算资源管理的单位。

  • 在创建函数前先创建服务,用户可以在服务级别上授权访问、配置日志、创建函数等,在服务内创建的函数共享同样的服务设置,例如服务授权和日志配置等。
  • 当用户在使用函数计算开发应用时,可以先在同一服务内创建所有应用函数;随着应用功能和复杂度的增长,可以再将应用拆分为多个服务以构建微服务模式,各服务采取独立的节奏开发、测试和部署。
  • 从业务场景出发,一个应用可以拆分为多个服务。从资源使用维度出发,一个服务可以由多个函数组成。

服务创建完成后,需要先对函数服务授权OSS角色权限,以便于后续OSS和FC的联动和事件触发。在服务详情的角色配置界面,选择创建好的fc-oss-access角色,点击保存完成角色授权。

 

思考:服务创建后该如何配置函数?

在创建好服务和相关的权限配置后,接下来该如何创建和配置图片的压缩、解压缩以及MD5码提取函数呢?小陈带着疑问再次请教大刘。

小陈:师傅,我已经创建好函数计算服务了,然后应该是创建函数吧,但是我现在需要通过函数实现三个功能,那我应该单独创建三个函数?

大刘:没错,函数其实是FC的基本运行单位,你想要实现的三个功能,如果彼此之前相互独立,应该拆分成三个函数来实现。那你有没有思考过这三个函数和之前创建的服务之间是什么关系?

小陈:我也想到这个问题了,应该把每个函数单独归属一个服务,还是三个函数归属同一个服务呢?

大刘:首先函数是从属于服务的,这个相信你已经了解了。其次,函数和服务的对应关系,应该要从业务场景的角度出发,根据应用功能的逻辑和复杂度情况来进行服务的拆分和合并。从业务场景出发,一个应用可以拆分为多个服务;从资源使用维度出发,一个服务可以由多个函数组成。例如,一个数据处理服务,分为数据准备和数据处理两部分。数据准备函数资源需求小,可以选择小规格实例。数据处理函数资源需求大,可以选择大规格实例。同样的也可以从功能的维度来决定服务的分布。

小陈:我们这次的需求其实都是围绕着网站图片的处理,按功能的维度来区分的话,其实放在一个服务内就挺合适的。

大刘:这么说来我是赞同这个方式的,接下来你继续创建函数吧。

 

注:可以在本课程配套的实验环节中体验具体操作。

1)创建函数

在函数服务fc-demo的左侧选择函数管理,再创建函数。

函数是管理、运行的基本单位,通常由一系列的配置和可运行代码包组成。函数从属于服务,同一个服务下可以创建多个函数,这些函数共享一些相同的设置,例如服务授权和日志配置等。但这些函数彼此相互独立,互不影响。函数由用户编写,由事件触发,需要注意一个服务内能创建的函数是有数量限制的。函数相关操作主要包括创建函数和调用函数等。

在创建函数界面,按照实际需求进行参数的设置,并选择“使用内置运行时”创建,代码上传方式选择“示例代码Hello,world!示例“,此处先使用示例代码,后续替换为实际的业务代码。

这里我们需要简单解释一下,运行时(Runtime)通常指的是运行某一门编程语言所需要的基础宿主环境。函数计算通过使用运行时支持多种编程语言。在创建函数时,需要选择上传代码需要的运行时环境。函数支持通过三种方式来进行创建:

  • 使用内置运行时创建

按照函数计算定义的接口编写程序处理事件和 HTTP 请求。由于代码包中不包含运行时,所以冷启动最快。代码包格式支持ZIP、JAR(Java)和文件夹。

  • 使用自定义运行时创建

适合想要基于各个语言的流行框架(Java SpringBoot、Node.js Express、Python Flask、Golang Gin 等)编写程序,或者迁移已有的框架应用,由于自定义运行时使用公共镜像,没有镜像拉取时间,所以冷启动会较快。代码包格式支持ZIP、JAR(Java)和文件夹。

  • 使用容器镜像创建

适用于想要完全控制程序运行的环境,或者迁移已有的容器应用,或者想要使用 GPU 实例。因为需要通过容器镜像服务ACR服务来拉取镜像,所以冷启动较慢。

2)配置触发器

在下拉配置界面进行触发器配置,并按照相关参数进行设置,指定bucket和文件目录,设置 oss:ObjectCreated:PostObject 和 oss:ObjectCreated:PutObject 这两种触发事件。当有新的素材上传,OSS触发器会自动触发函数进行图片处理。

函数计算提供了一种事件驱动的计算模型。函数的执行是由事件驱动的。函数的执行可以通过函数计算控制台或SDK触发,也可以由其他一些事件源来触发。可以在指定函数中创建触发器,该触发器描述了一组规则,当某个事件满足这些规则,事件源就会触发关联的函数。

触发器是触发函数执行的方式,事件源是事件的生产者,函数是事件的处理者。当事件发生时,如果满足触发器定义的规则,事件源会自动调用触发器关联的函数。例如在本次实验任务中,通过配置OSS触发器,当有新图片上传到指定的Bucket,OSS触发器会自动触发函数处理图片。

按照触发器集成方式,触发器可以分为:

  • 双向集成触发器(既可以在函数计算,又可以在事件源端配置触发器);
  • 单向集成触发器(目前只支持在事件源端配置触发器);
  • 云产品事件触发器(支持在函数计算配置触发器,同时支持在事件总线EventBridge创建函数触发规则,无需在事件源端配置)。

关于触发器种类和更多的详细信息,可以在阿里云函数计算产品文档中查询。

 

标签:触发器,服务,函数,步骤,FC,计算,创建
From: https://www.cnblogs.com/flyingsir/p/18195857

相关文章

  • 函数与服务的概念。
    本课程关键知识点总结:1、函数即服务 (FaaS) 是在Serverless架构下的一种云计算形式,其中的“函数”的概念实质上是一种服务,也可以说是在Serverless架构下,计算平台中的一种计算模块粒度。 2、Serverless架构的函数计算FC产品,具有以下优势:高扩展性,横向扩展是完全自动的、有弹......
  • 深度解读《深度探索C++对象模型》之C++虚函数实现分析(三)
    “深度解读《深度探索C++对象模型》”系列已经在CSDN上和我的公众号上更新完毕,请有需要的同学移步到我的CSDN主页里去阅读,主页地址:https://blog.csdn.net/iShare_Carlos?spm=1010.2135.3001.5421或者敬请关注我的公众号:iShare爱分享前面两篇请从这里阅读:深度解读《深度探索C+......
  • python函数参数中的**kwargs
    表示传递任意参数,必须放在形参的最后本质就是一个字典在函数内部可以继续进行处理,添加参数,例如:defexample_function(**kwargs):kwargs['db']=1print(kwargs)如果函数b中的形参是指定了名字的参数,并且你将字典以**a的方式传递给该函数,那么字典中的键必须与函......
  • 函数
    函数【一】引言前面写的项目都是面条版从头到尾没有中断报错,更新功能很麻烦【二】函数的概念将某一块代码快封装起来后可以在某处直接使用的代码块先定义再调用【三】函数语法【1】标准函数结构def函数名(): 代码体【2】定义函数deflogin():print("登录")log......
  • 视频智能检测AI智能分析网关V4告警消息推送:公众号消息推送的配置步骤介绍
    TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备,目前拥有3种型号(8路/16路/32路),支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型,算力高达17.6/32Tops的INT8峰值算力,2.2T的FB32高精度算......
  • python sftp文件上传和Dockerfile部署步骤
    ##1、脚本app.py#-*-coding:utf8-*-importosimportparamikofromdatetimeimportdatetime,timedeltafromflaskimportFlask,requestapp=Flask(__name__)#从环境变量中获取配置信息host=os.getenv("SFTP_HOST")port=int(os.getenv("SFTP_PORT&q......
  • shell函数和数组
    函数定义函数##第一种:简单常用函数名(){脚本(命令集合)}##第二种:function函数名{脚本内容(命令集合)}##第三种function函数名(){脚本(命令集合)}函数使用#!/bin/bashnum(){##num是定义的函数名称a=66echo${a}}num##这里的num是调用上面的num函数......
  • ubuntu 安装 docker 详细步骤(转)
    什么是Docker?Docker是一个免费的开源工具,设计用于在容器中构建、部署和运行应用程序。安装docker的主机是已知的docker引擎。Docker使用操作系统级虚拟化,并提供容器运行时环境。换句话说,Docker也可以被定义为PaaS(平台即服务)工具。因为docker是一个基于守护进程的服......
  • js防抖和限流函数
    functiondebounce(fn,delay){lettimer;lettht=this;returnfunction(...args){clearTimeout(timer)console.log(...args)timer=setTimeout(()=>{fn.apply(tht,args)},delay)}}function......
  • Shell编程之循环语句与函数
    目录1.循环语句(1)for循环语句(2)while循环语句(3)untli循环语句(4)双层循环2.Shell函数(1)函数返回值:(2)函数传参:(3)函数变量的作用范围:(4)递归3.Shell数组(1)定义数组(2)查看数组(3)数组分片、字符替换和删除(4)追加(5)数组排序算法:1.循环语句(1)for循环语句for变量in取值列表for((变量=初始值;变量......