用 erlcloud 调用 AWS Lambda:函数部署与调用的完整教程

发布时间:2026/8/20 17:09:27

用 erlcloud 调用 AWS Lambda:函数部署与调用的完整教程
用 erlcloud 调用 AWS Lambda函数部署与调用的完整教程【免费下载链接】erlcloudAWS APIs library for Erlang (Amazon EC2, S3, SQS, DDB, ELB and etc)项目地址: https://gitcode.com/gh_mirrors/er/erlcloud在 Erlang 生态中erlcloud 是最流行的 AWS 客户端库而其中对 AWS Lambda 的支持更是让 Erlang 开发者无需切换语言就能完成函数部署与调用。这篇教程将带你从零开始掌握用 erlcloud 创建 Lambda 函数、更新代码、同步/异步调用函数的核心方法全程配有可直接运行的代码示例适合新手快速上手。为什么选择 erlcloud 操作 AWS Lambdaerlcloud 是一套纯 Erlang 实现的 AWS API 库覆盖 EC2、S3、SQS、DynamoDB、ELB 等数十项服务其中 Lambda 相关接口集中在 src/erlcloud_lambda.erl支持创建函数、删除函数、发布版本、管理别名、创建事件源映射等完整能力。使用它的优势非常明显纯 Erlang 实现与你的业务代码无缝集成不需要额外启动代理进程签名由库自动处理SigV4 请求签名、HTTP 传输全部封装在底层API 简洁通常一两行代码即可完成一次云端操作支持多账户通过aws_config配置对象可灵活切换不同 AWS 账户部署前的准备获取凭证与配置1. 获取 AWS 访问凭证在开始之前你需要准备好Access Key ID和Secret Access Key在 IAM 中创建一个具备 Lambda 执行权限的IAM Role ARNErlang/OTP 环境erlcloud 支持 OTP 19.3 到 27.1 的多个版本2. 获取 erlcloud 源码先获取项目源码git clone https://gitcode.com/gh_mirrors/er/erlcloud cd erlcloud make3. 两种配置方式erlcloud 提供两种配置方式你可以按需选择方式一进程字典全局配置适合简单任务erlcloud_lambda:configure(AKID, SecretKey).方式二配置对象适合多账户场景Config erlcloud_lambda:new(AKID, SecretKey), %% 也可以指定自定义 endpoint 和端口 Config2 erlcloud_lambda:new(AKID, SecretKey, lambda.cn-north-1.amazonaws.com.cn, 443).配置对象的定义位于 include/erlcloud_aws.hrl其中lambda_host默认指向lambda.us-east-1.amazonaws.com。用 erlcloud 部署 Lambda 函数准备函数代码erlcloud 支持两种代码来源通过erlcloud_lambda_code记录定义在 include/erlcloud_lambda.hrl描述S3 上的代码包指定s3Bucket和s3Key本地 ZIP 内容直接传入zipFile二进制-include(erlcloud_lambda.hrl). %% 方式一从 S3 加载代码 Code #erlcloud_lambda_code{s3Bucket my-bucket, s3Key my-function.zip}, %% 方式二直接传入 zip 二进制 Code2 #erlcloud_lambda_code{zipFile ZipBinary}.一键创建 Lambda 函数使用create_function/6即可完成部署核心参数包括代码、函数名、处理器、角色和运行时{ok, Result} erlcloud_lambda:create_function( Code, my_hello_fn, %% FunctionName index.handler, %% Handler arn:aws:iam::123456789012:role/lambda-basic, %% Role nodejs, %% Runtime [] %% Options如描述、超时、内存等 ).函数签名位于 src/erlcloud_lambda.erl返回的 JSON 中包含FunctionArn、CodeSha256等部署信息。还可在 Options 中传入{Timeout, 30}、{MemorySize, 256}等额外配置项。更新函数代码与配置当业务代码迭代后无需重建函数直接更新代码即可%% 更新代码并发布新版本 erlcloud_lambda:update_function_code(my_hello_fn, true, Code).修改函数的内存、超时等运行时配置使用update_function_configuration/6erlcloud_lambda:update_function_configuration( my_hello_fn, 新描述, %% Description index.handler, %% Handler 512, %% MemorySize undefined, %% Role保持不变传 undefined 60 %% Timeout秒 ).调用 AWS Lambda 函数同步与异步函数部署完成后最关键的一步就是调用它。erlcloud 的invoke系列函数见 src/erlcloud_lambda.erl支持多种调用模式。1. 最简单的同步调用%% 无参数调用 erlcloud_lambda:invoke(my_hello_fn). %% 携带 JSON payload 调用 Payload {\name\:\erlcloud\}, {ok, Result} erlcloud_lambda:invoke(my_hello_fn, Payload).2. 通过 Options 控制调用行为Options 中可以设置 AWS Lambda 的标准头实现同步/异步切换和日志控制%% 异步调用Event 模式不等待函数执行结果 erlcloud_lambda:invoke(my_hello_fn, [], [{X-Amz-Invocation-Type, Event}, {X-Amz-Log-Type, None}], Config). %% 同步调用并返回响应头包含执行日志 {ok, Headers, Data} erlcloud_lambda:invoke(my_hello_fn, [], [{show_headers, true}, {X-Amz-Log-Type, Tail}, {X-Amz-Invocation-Type, RequestResponse}], Config).调用类型说明调用类型X-Amz-Invocation-Type行为同步RequestResponse等待函数执行完成并返回结果异步Event立即返回后台执行干跑DryRun仅验证权限不真正执行3. 调用指定版本或别名通过Qualifier参数可调用特定版本或别名实现灰度发布erlcloud_lambda:invoke(my_hello_fn, Payload, [], v1, Config). %% 或调用别名 erlcloud_lambda:invoke(my_hello_fn, Payload, [], prod, Config).函数管理与清理查询、删除与版本控制列出所有函数erlcloud_lambda:list_functions(). %% 列出全部 erlcloud_lambda:list_functions(50, undefined). %% 分页每页 50 个获取函数详情与配置erlcloud_lambda:get_function(my_hello_fn). erlcloud_lambda:get_function_configuration(my_hello_fn).发布版本与管理别名%% 发布一个新版本 erlcloud_lambda:publish_version(my_hello_fn, [], Config). %% 为版本创建别名 erlcloud_lambda:create_alias(my_hello_fn, $LATEST, prod, [], Config).删除不再使用的函数erlcloud_lambda:delete_function(my_hello_fn). %% 删除指定版本 erlcloud_lambda:delete_function(my_hello_fn, v1, Config).常见问题与排错技巧1. 返回AccessDeniedException检查 IAM Role 是否绑定了 Lambda 执行策略AWSLambdaBasicExecutionRole以及凭证是否有lambda:CreateFunction、lambda:InvokeFunction权限。2. 函数代码一直部署失败确认 ZIP 包结构正确Node.js 要求入口文件在包根目录且Handler格式为文件名.导出函数名。3. 异步调用看不到结果异步调用默认不返回执行结果建议开启 CloudWatch Logs通过X-Amz-Log-Type: Tail查看同步调用日志或直接去控制台查看函数日志流。4. 想调试 API 请求细节erlcloud 底层 HTTP 逻辑在 src/erlcloud_httpc.erl可以在此设置调试级别观察完整请求与响应。总结通过本文你已经掌握了用 erlcloud 操作 AWS Lambda 的完整链路配置凭证 → 部署函数 → 更新代码 → 同步/异步调用 → 版本与别名管理 → 清理回收。整个模块的接口实现都在 src/erlcloud_lambda.erl 中配合 test/erlcloud_lambda_tests.erl 中的大量测试用例可以快速验证每个 API 的用法。现在就拉取 erlcloud 源码动手部署你的第一个 Erlang 驱动的 Lambda 函数吧【免费下载链接】erlcloudAWS APIs library for Erlang (Amazon EC2, S3, SQS, DDB, ELB and etc)项目地址: https://gitcode.com/gh_mirrors/er/erlcloud创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

060、Enzyme自动微分框架与MLIR的集成

060、Enzyme自动微分框架与MLIR的集成

2026/8/20 17:09:27

060、Enzyme自动微分框架与MLIR的集成 一、一个让我熬夜到凌晨三点的梯度问题 去年秋天,我在给一个边缘计算设备写模型推理加速器。模型里有个自定义算子,用C++手写了前向,反向梯度死活算不对。手动推导链式法则?矩阵维度一多,脑子就炸。用PyTorch的autograd?算子太底层…

059、自动微分(AutoDiff)在MLIR中的表示

059、自动微分(AutoDiff)在MLIR中的表示

2026/8/20 17:09:27

059、自动微分(AutoDiff)在MLIR中的表示 上周调试一个自定义算子反向传播时,发现MLIR生成的梯度计算图里多了一个莫名其妙的linalg.generic操作,把输入张量原地改写了。查了两天,最后定位到是自动微分pass在lowering过程中把某个中间变量的梯度累加逻辑错误地折叠进了前向…

免费神器强制调整窗口大小,拖不动的窗口一招变听话

免费神器强制调整窗口大小,拖不动的窗口一招变听话

2026/8/20 17:09:27

免费神器强制调整窗口大小,拖不动的窗口一招变听话 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 周一早上八点半,财务部最资深的会计周姐准时坐到工位上。…

5分钟快速上手EatFit:iOS动画数据组件的安装配置与第一个页面实战

5分钟快速上手EatFit:iOS动画数据组件的安装配置与第一个页面实战

2026/8/20 18:09:29

5分钟快速上手EatFit:iOS动画数据组件的安装配置与第一个页面实战 【免费下载链接】EatFit Eat fit is a component for attractive data representation inspired by Google Fit 项目地址: https://gitcode.com/gh_mirrors/ea/EatFit 想让你的 App 拥有 Goo…

社交媒体数据采集怎么做更省力?20分钟用 MediaCrawler-new 打通五大平台

社交媒体数据采集怎么做更省力?20分钟用 MediaCrawler-new 打通五大平台

2026/8/20 18:09:29

社交媒体数据采集怎么做更省力?20分钟用 MediaCrawler-new 打通五大平台 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 说到社交媒体数据采集,很多人第一反应是"又难又烦"。…

老Mac卡在旧系统?OpenCore Legacy Patcher升级macOS完整上手教程

老Mac卡在旧系统?OpenCore Legacy Patcher升级macOS完整上手教程

2026/8/20 18:09:29

老Mac卡在旧系统?OpenCore Legacy Patcher升级macOS完整上手教程 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 如果你手里的 Intel Mac 还停在旧…

react-kanban 源码解析(一):Board 三层组件架构与受控/非受控实现原理

react-kanban 源码解析(一):Board 三层组件架构与受控/非受控实现原理

2026/8/20 18:09:29

react-kanban 源码解析(一):Board 三层组件架构与受控/非受控实现原理 【免费下载链接】react-kanban Yet another Kanban/Trello board lib for React. 项目地址: https://gitcode.com/gh_mirrors/reac/react-kanban react-kanban 是一个基于 React Hooks 和 react-bea…

THCalendarDatePicker 开源指南:如何贡献代码与规划组件的未来路线图

THCalendarDatePicker 开源指南:如何贡献代码与规划组件的未来路线图

2026/8/20 18:09:29

THCalendarDatePicker 开源指南:如何贡献代码与规划组件的未来路线图 【免费下载链接】THCalendarDatePicker A DatePicker based on a custom calendar view 项目地址: https://gitcode.com/gh_mirrors/th/THCalendarDatePicker THCalendarDatePicker 是一款…

react-scanner getPropValue 深度解析:自定义 Props 值提取的进阶玩法

react-scanner getPropValue 深度解析:自定义 Props 值提取的进阶玩法

2026/8/20 17:59:29

react-scanner getPropValue 深度解析:自定义 Props 值提取的进阶玩法 【免费下载链接】react-scanner Extract React components and props usage from code. 项目地址: https://gitcode.com/gh_mirrors/re/react-scanner react-scanner 是一款专注于从代码…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

2026/8/20 0:08:45

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com…

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

2026/8/20 0:08:45

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 判断你是否…

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

2026/8/20 0:08:45

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 按 3MF 官方规范的字面意思,一…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…