关于将 AWS Lambda 工作负载迁移到 OCI 函数

AWS Lambda 函数经常嵌入到更大的应用程序和集成工作流中。

成功的迁移不仅需要在平台之间移动代码,OCI Functions 是 AWS Lambda 迁移计划的默认目标。在选择 OCI 函数作为目标之前,请确定每个函数的调用方式、它与哪些服务交互、它依赖哪些操作行为以及必须保留哪些行为。

此清单包括收集触发器类型、最长持续时间、内存使用量、有效负载大小、并发性、重试和失败行为、相关项、IAM 权限、网络路径、日志记录、监视和恢复预期。这些特征决定了 OCI Functions 或其他 OCI 服务是否是更好的目标。

在评估期间,验证 OCI 函数是否可以支持工作负载的调用、有效负载、超时、内存、并发、网络、依赖性和集成要求。

如果 OCI Functions 无法满足已记录的要求,请在建议非函数体系结构之前暂停迁移并完成异常复查。例外必须包括技术制约因素、订正的总成本模型、迁移工作量、业务影响以及对订正方法的明确批准。

您将做什么

  • 创建基于证据的 Lambda 配置、触发器、依赖项、权限、流量、故障和运行信号清单。
  • 将源行为与 OCI Functions 限制、调用模式、触发模式、安全性、依赖项打包、网络和可观察性进行比较。
  • 将便携式业务逻辑与特定于提供商的事件解析、身份、SDK 调用、部署打包、日志记录、密钥、重试次数和操作代码区分开来。
  • 将该函数部署为 OCI Functions 容器映像,并在切换之前验证输出、错误、副作用、延迟、容量、重试次数、安全性、可观测性和回滚准备情况。

如何使用本手册

本手册是评估和实施指南。

对于大型 Lambda 庄园,不要从手动评估每个功能开始。从包含主要运行时、触发器、依赖项、流量配置文件和业务关键性级别的代表性示例开始。

使用示例可以:

  1. 确认代表性工作负荷的 OCI Functions 迁移方法。
  2. 确定所需的适配器和目标代码更改。
  3. 确定所需的安全性、网络、部署和运营变更。
  4. 估计迁移工作量、风险和可重用模式。
  5. 为工作迁移试点选择代表性工作量。

它不会自动转换 Lambda 代码或生成所有必需的集成。

体系结构

此可重用模式将源评估与目标实施分开。

先清点 Lambda 函数、触发器和操作行为。然后,将便携式业务逻辑与特定于提供商的适配器隔离。目标实施在 OCI Functions 应用中运行,从容器注册表中存储的容器映像部署,使用 OCI IAM 和资源主体进行运行时访问,从批准的密钥存储(例如 OCI Vault )中检索密钥,并在需要时通过 OCI Logging 、Monitoring、Alarms 和 APM 发出运行信号。

AWS Lambda 到 OCI Functions 的关系映射

这是工作负载包络的分组视图,可围绕 OCI 函数重新创建


后面是 migrate-lambda-functions-arch.png 的说明
插图 migrate-lambda-functions-arch.png 的说明

migrate-lambda-functions-arch-oracle.zip#GUID-B6E215FE-1619-4CDD-B055-0194D46ADBF8

架构原则

  • 首先评估,然后迁移。 触发器、有效负载、重试次数、层、权限、网络和操作行为可能会有所不同。
  • 将触发器迁移视为行为迁移。 比较事件配置、验证、重试、排序、批处理、重复传送、筛选、死信或失败目标以及毒药消息处理。
  • 测量源工作量。 捕获调用速率、峰值并发性、持续时间百分比段、最长持续时间、内存使用量、冷启动敏感路径、有效负载大小、错误率、限制速率、DLQ 或故障计数、积压和下游限制。
  • 保持业务逻辑可移植性。 隔离用于事件解析、身份、SDK 调用、对象或消息访问、日志记录、配置、密钥和重试行为的适配器。
  • 将操作设为迁移的一部分。 在切换之前,必须存在日志、度量、预警、仪表盘、跟踪、运行手册、回滚触发器和故障测试。

核心组成部分

该架构通常包括源 Lambda 工作负载、迁移记录、OCI 调用层、 OCI Functions 应用和映像,以及支持的安全性、网络和运营服务。将源视为证据,而不是直接蓝图;从所需行为和验证结果中选择 OCI 组件。

AWS Lambda 和 OCI 等效概念

在评估期间使用此键。

此密钥用作翻译指南,而不是一对一等式的承诺。对于每行,将源行为与目标 OCI 行为进行比较,并在迁移记录中保留证据。

AWS Lambda 概念 OCI 概念或模式 比较或验证的内容
函数和处理程序 带有 Fn FDK 处理程序的 OCI 函数 运行时、体系结构、处理程序入口点、事件解析器、响应对象、错误行为、本地测试路径以及特定于运行时库的支持。
ZIP 包、层、扩展 容器映像或共享基础映像 相关性版本、本机库、映像大小、启动行为、扩展行为、嵌入式 SDK 假设以及依赖性是否应在函数之间共享。
执行角色和资源策略 OCI Identity and Access Management (IAM) 策略、动态组和资源主用户 运行时操作、区间和资源范围、跨账户或跨区间访问、密钥读取、对象或队列访问以及拒绝路径测试。
API 网关加上 Lambda OCI API GatewayOCI Functions 验证、路由和方法、标头、查询字符串、主体方案、状态代码、响应标头、超时、有效负载大小、延迟和错误主体。
S3 对象事件 通过 OCI 活动举办 OCI 对象存储活动 事件方案、对象元数据、名称空间、存储桶和前缀筛选器、创建/更新/删除行为、重试次数、重复项、幂等性以及防止输入/输出循环。
SQS、流、SNS、EventBridge、日志订阅 OCI Queue、 OCI StreamingOCI NotificationsOCI EventsOCI Connector Hub 或重新设计的流 批大小、排序、重试、部分失败、死信或失败目标、可见性或重试窗口、后压、中毒消息、扇出、筛选器和重复传送。
同步或异步调用 同步或分离调用 调用方响应语义、结果处理、调用超时、执行超时、分离的完成处理、成功/失败目标以及重试路径。
内存、超时、有效负载、临时假设 OCI Functions 内存、超时、请求、响应、映像和运行时设置 p95/p99 和最大持续时间、超时计数、内存空间、请求/响应有效负载大小、临时存储假设、大有效负载卸载设计和依赖项加载时间。
保留/预配的并发性和事件源缩放 OCI 服务限制、应用并发性、预配的并发性、触发控制和下游保护 当前和峰值并发性、冷启动敏感性、节流或 429、队列时间或积压、重试风暴、下游容量限制,以及源设置是否保留容量、限制流量或减少延迟。
CloudWatch Logs、Metrics、Alarms、X-Ray OCI LoggingOCI Monitoring 、报警、仪表盘和 Oracle Application Performance Monitoring ( APM ) 必需的日志字段、关联 ID、调用计数、持续时间、错误率、超时计数、预警阈值、跟踪、仪表盘、运行手册和事件响应所有权。
密钥管理器,参数存储,KMS,VPC 网络 OCI Vault 、密钥、VCN、子网、网关、专用端点、DNS 和安全规则 密钥轮换、泄漏检查、路由规则、出站、DNS、允许列表、专用访问、未经授权的路径阻止和下游连接限制。