关于将 AWS Lambda 工作负载迁移到 OCI 函数
成功的迁移不仅需要在平台之间移动代码,OCI Functions 是 AWS Lambda 迁移计划的默认目标。在选择 OCI 函数作为目标之前,请确定每个函数的调用方式、它与哪些服务交互、它依赖哪些操作行为以及必须保留哪些行为。
此清单包括收集触发器类型、最长持续时间、内存使用量、有效负载大小、并发性、重试和失败行为、相关项、IAM 权限、网络路径、日志记录、监视和恢复预期。这些特征决定了 OCI Functions 或其他 OCI 服务是否是更好的目标。
在评估期间,验证 OCI 函数是否可以支持工作负载的调用、有效负载、超时、内存、并发、网络、依赖性和集成要求。
如果 OCI Functions 无法满足已记录的要求,请在建议非函数体系结构之前暂停迁移并完成异常复查。例外必须包括技术制约因素、订正的总成本模型、迁移工作量、业务影响以及对订正方法的明确批准。
您将做什么
- 创建基于证据的 Lambda 配置、触发器、依赖项、权限、流量、故障和运行信号清单。
- 将源行为与 OCI Functions 限制、调用模式、触发模式、安全性、依赖项打包、网络和可观察性进行比较。
- 将便携式业务逻辑与特定于提供商的事件解析、身份、SDK 调用、部署打包、日志记录、密钥、重试次数和操作代码区分开来。
- 将该函数部署为 OCI Functions 容器映像,并在切换之前验证输出、错误、副作用、延迟、容量、重试次数、安全性、可观测性和回滚准备情况。
如何使用本手册
对于大型 Lambda 庄园,不要从手动评估每个功能开始。从包含主要运行时、触发器、依赖项、流量配置文件和业务关键性级别的代表性示例开始。
使用示例可以:
- 确认代表性工作负荷的 OCI Functions 迁移方法。
- 确定所需的适配器和目标代码更改。
- 确定所需的安全性、网络、部署和运营变更。
- 估计迁移工作量、风险和可重用模式。
- 为工作迁移试点选择代表性工作量。
它不会自动转换 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-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 Gateway 和 OCI Functions | 验证、路由和方法、标头、查询字符串、主体方案、状态代码、响应标头、超时、有效负载大小、延迟和错误主体。 |
| S3 对象事件 | 通过 OCI 活动举办 OCI 对象存储活动 | 事件方案、对象元数据、名称空间、存储桶和前缀筛选器、创建/更新/删除行为、重试次数、重复项、幂等性以及防止输入/输出循环。 |
| SQS、流、SNS、EventBridge、日志订阅 | OCI Queue、 OCI Streaming 、 OCI Notifications 、 OCI Events 、 OCI Connector Hub 或重新设计的流 | 批大小、排序、重试、部分失败、死信或失败目标、可见性或重试窗口、后压、中毒消息、扇出、筛选器和重复传送。 |
| 同步或异步调用 | 同步或分离调用 | 调用方响应语义、结果处理、调用超时、执行超时、分离的完成处理、成功/失败目标以及重试路径。 |
| 内存、超时、有效负载、临时假设 | OCI Functions 内存、超时、请求、响应、映像和运行时设置 | p95/p99 和最大持续时间、超时计数、内存空间、请求/响应有效负载大小、临时存储假设、大有效负载卸载设计和依赖项加载时间。 |
| 保留/预配的并发性和事件源缩放 | OCI 服务限制、应用并发性、预配的并发性、触发控制和下游保护 | 当前和峰值并发性、冷启动敏感性、节流或 429、队列时间或积压、重试风暴、下游容量限制,以及源设置是否保留容量、限制流量或减少延迟。 |
| CloudWatch Logs、Metrics、Alarms、X-Ray | OCI Logging 、 OCI Monitoring 、报警、仪表盘和 Oracle Application Performance Monitoring ( APM ) | 必需的日志字段、关联 ID、调用计数、持续时间、错误率、超时计数、预警阈值、跟踪、仪表盘、运行手册和事件响应所有权。 |
| 密钥管理器,参数存储,KMS,VPC 网络 | OCI Vault 、密钥、VCN、子网、网关、专用端点、DNS 和安全规则 | 密钥轮换、泄漏检查、路由规则、出站、DNS、允许列表、专用访问、未经授权的路径阻止和下游连接限制。 |