云原生架构中的事件驱动与函数部署实践
1. 事件的概念与作用
事件通常指特定情况的发生。在软件架构里,事件至关重要,它为不同的应用集成模式(如即发即弃、发布 - 订阅、存储转发)奠定基础。以业务流程为例,特定收件邮箱收到的电子邮件可视为一个事件,能触发系统中的新业务流程;新文件上传到对象存储桶也可当作事件,触发无服务器函数实例处理新上传的数据。事件需携带额外但尽量有限且轻量级的上下文信息,例如在新文件上传的例子中,事件至少要携带新对象的名称和存储桶的名称,这样对应的无服务器函数才能识别引发事件的对象。
事件驱动的应用架构中,组件通过交换事件进行通信,具有松耦合的优势,这是独立组件开发和生命周期管理的关键,最终能提高生产力。
2. 部署和测试无服务器函数
我们将部署和测试一个处理特定对象存储桶中新创建对象的无服务器函数。当新对象上传到 reports 存储桶时, reportingfn 无服务器函数的实例将被创建,并获得携带对象名称的事件上下文信息。函数会验证对象名称是否使用 .raw.csv 后缀,若是,则读取对象内容,在内存中进行简单的数据聚合,并创建一个新对象存储操作结果,新对象的后缀为 .processed.csv 。
3. 函数与对象存储的交互
在 Oracle Functions 平台上运行的函数访问对象存储的方式与在计算实例上运行的传统应用类似。OCI API 调用以实例主体的名义进行,实例主体可包含在动态组中。为将特定函数的所有动态创建的函数实例包含在一个动态组中,可设计动态组匹配
超级会员免费看
订阅专栏 解锁全文
1512

被折叠的 条评论
为什么被折叠?



