# 云函数各触发器的场景使用

#### 问题现象

云函数有很多种不同的触发器，这些触发器分别是什么？在什么场景下使用？

#### 背景知识

*   云函数业务介绍：云函数是一项Serverless计算服务，提供FaaS（Function as a Service）能力。
    *   云函数将开发测试的对象聚焦到函数级别，可以帮助开发者大幅简化应用开发与运维相关的事务。
    *   开发者可以通过在应用中集成云函数SDK，便捷操作云数据库、云存储等，提升业务功能构建的便利性。
    *   云函数可以根据函数的实际流量对函数进行弹性伸缩，开发者无需对服务器资源进行管理，解决了开发者运维管理的难题。
*   云数据库业务介绍：云数据库是一款端云协同的数据库产品，提供端云数据的协同管理、统一的数据模型和丰富的数据管理API接口等能力。在保证数据的可用性、可靠性、一致性，以及安全等特性基础上，能够实现数据在客户端和云端之间的无缝同步，并为应用提供离线支持，以帮助开发者快速构建端云、多端协同的应用。
*   认证服务业务介绍：认证服务可以为开发者的应用快速构建安全可靠的用户认证系统，只需在应用中访问认证服务的相关能力，而不需要关心云侧的设施和实现。
    *   认证服务提供了SDK和后端服务，内置了对多种认证方式的支撑，提供了功能强大的管理台，使开发者能够轻松完成用户认证的开发和管理工作。
    *   认证服务的SDK支持多种平台和语言，无论用户使用何种类型的终端，都能获得统一的登录体验和用户身份。
    *   认证服务作为Serverless服务的一种可与其他Serverless服务自动适配，开发者可以通过简单的规则定义来保护用户在Serverless服务中的数据安全。
*   云存储业务介绍：云存储是一种可伸缩、免维护的云端存储服务，可用于存储图片、音频、视频或其他由用户生成的内容。借助云存储服务，开发者可以无需关心存储服务器的开发、部署、运维、扩容等事务，大大降低了应用使用存储的门槛，让开发者可以专注于应用的业务能力构建。
    
    云存储提供了客户端和服务端SDK，开发者可以使用云存储SDK为应用实现安全可靠的文件上传和下载服务，同时具备如下优势。
    
    *   安全可靠：全流程使用HTTPS协议对用户的传输数据进行加密保护，并采用安全的加密协议将文件加密存储在云端。
    *   断点续传：因网络原因或用户原因导致的操作中止，只需要简单地传入操作中止的位置，就可以尝试重新开始该操作。
    *   可伸缩：提供EB级的数据存储，解决海量数据存储的难题。
    *   易维护：通过简单的判断返回异常就可以定位出错误原因，定位快捷方便。
    

#### 解决方案

云函数支持在函数版本或别名上配置触发器。调用方可以通过触发器暴露的触发条件，来实现函数调用。调用云函数时，入口方法的入参event对象中包含了各类触发器传递的信息。

*   HTTP触发器：支持通过云函数SDK来触发云函数，包括Client SDK和Server SDK。
    *   为云函数完成HTTP触发器配置后会生成触发URL，在向该URL发起HTTP请求时将触发云函数。
    *   使用场景：端侧直接调用。通过HTTP触发器，应用可以直接在HarmonyOS应用端侧通过调用cloudfunction.call接口来实现函数的调用。
*   云数据库触发器：支持通过云数据库相关事件来触发云函数。
    *   AGC云数据库服务为开发者提供了基于云函数服务的扩展机制，开发者可以为云函数配置云数据库触发器，当云数据库发生插入或者更新数据、删除数据、清空数据等变更操作时将触发云函数，并在云函数中扩展业务处理逻辑。
    *   使用场景：云数据库有数据变更时可以自动触发函数进行逻辑处理。
*   认证服务触发器：支持通过认证服务相关事件来触发云函数。
    *   AGC认证服务为开发者提供了基于云函数服务的扩展机制，开发者可以为云函数配置认证服务触发器来接收用户的注册、登录等关键事件，并在云函数中扩展业务处理逻辑。
    *   使用场景：当用户通过认证服务进行登录等账号操作时可以同时触发云函数进行登录延伸逻辑的处理。
*   云存储触发器：支持通过云存储相关事件来触发云函数。
    *   开发者可以为云函数配置云存储触发器，当AGC云存储服务中发生文件或者文件夹上传或删除操作时，将触发函数并执行您想要实现的功能。
    *   使用场景：当云存储有文件操作时触发函数进行对应逻辑处理。