采用无服务器的 MoonMail Lambda 架构

2024-02-02

我一直在研究这个项目,因为让整个系统成为 Lambda 函数集合的想法似乎非常有吸引力。事实上,几年前我编写了一些软件,其功能与 MoonMail 几乎相同,并且由于某些规格发生了变化而需要更新。我正在评估将我的软件移植到 Lambda 或只是调整该软件以使用 MoonMail。

我有以下问题:

在使用 Serverless 的测试中,我注意到当我更改资源名称(例如 DynamoDb 表的名称)并重新部署时,没有任何警告,并且旧表及其内容被破坏。我认为像配置文件中的额外字符这样的简单错误会导致数据库上的所有数据被删除,这是相当危险的。您如何处理此类问题?

关于通过 SES 发送电子邮件。当达到特定帐户的发送限制时,如何处理限制?你做指数退避吗?我似乎无法在代码库中找到这个。如果您能指出发生这种情况的存储库中的一般区域,我将非常感激。


  1. MoonMail 的表名称存储在 s-templates.json 中。这个文件很少被触及,因此团队还没有遇到这个问题,但确实危险仍然存在,我会向 AWS 团队询问如何通过简单地在 CF 中重命名表来避免删除表。
  2. 它会在发送限制情况下重试Cloudwatch 调用 https://github.com/microapps/MoonMail/blob/d4aa8155b96da2e867549679b90b40b0fe5b40c7/events/sender/sendEmails/action.js#L29(如果我错了,MM团队会纠正我,但99%确定我没有)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

采用无服务器的 MoonMail Lambda 架构 的相关文章

  • JITSU 无法安装 OSX [节点 0.8.17 和 NPM 1.2.0] WTF

    我在通过 NPM 安装 jitsu 时遇到问题 我在 mac osx 10 6 8 上安装了节点 0 8 17 和 NPM 1 2 0 当我跑步时 sudo npm install jitsu g 首先它警告未找到自述文件 npm WARN
  • S3.getSignedUrl 接受多种内容类型

    我正在使用react s3 uploader节点包 它接受一个signingUrl用于获取用于将对象存储到 S3 中的signedUrl 目前 我已经配置了一个 lambda 函数 带有 API 网关端点 来生成此signedUrl 经过一
  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • 使用 AWS CDK 为 lambda 指定自定义角色

    我意识到它很新 但我没有看到任何语言的任何示例 说明如何为使用 AWS CDK 创建的 lambda 指定角色 我正在尝试这样做 const cdk require aws cdk cdk const lambda require aws
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l
  • Node Sass 没有绑定您当前的环境

    我在 SO 上看到过很多这样的问题 但似乎没有一个能解决或匹配问题 Node Sass 找不到适合您当前环境的绑定 带有 Node js 6 x 的 Windows 64 位 奇怪的是 我没有安装 Node js 6 x 从命令行 node
  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • 使用 Mongoose 无法找到按 ObjectId 搜索的文档

    Campaign find client id req param client id error campaigns gt if error response error error message else for campaign i
  • AWS beanstalk Nodejs 多核

    我有一个问题 在文档中找不到 如果我使用 beanstalk 创建一个 Nodejs 应用程序并使用多核机器 beanstalk 会利用所有这些核心吗 由于nodejs是单线程应用程序 beanstalk会为每个cpu创建一个新的nodej
  • 为什么有时 npm install 在 mac 上不起作用?

    我在运行命令时创建了nodejs项目npm 安装它因一些错误而失败 同一个项目正在进行中ubuntu系统但是当我克隆这个代码时mac系统并尝试运行 npm install 它失败并出现一些错误 我认为 scrypt 模块有问题 但我不知道确
  • Browserify 的自定义依赖项名称不起作用

    我正在尝试让 browserify 的自定义依赖项名称与内存流一起使用 我使用内存流的原因是因为此代码注定要在 AWS Lambda 内部运行 该 AWS Lambda 将接收多个 文件 作为输入 并且 Lambda 无法通过文件系统使用该
  • 在nodejs中解密.Net cookie

    我在 Net 中创建了一个加密的cookie 并尝试在nodejs 中解密它的内容 但是nodejs不断抛出异常 TypeError DecipherFinal失败 在 Net中 我使用带有密钥的AES加密方法 932D86BB1448EE
  • nodeJS + Swig 模板将变量传递给 javascript

    有没有办法使用nodeJS的express swig模板将变量从服务器端传递到客户端javascript 我知道这可以在 Jade 中完成 但我宁愿坚持使用更类似于 HTML 的模板引擎 感谢各位的帮助 好的 我假设您可以使用 consol
  • 反应本机套接字 io 没有从客户端发出事件

    尝试将socket io client与react native 现在是ios 一起使用 到目前为止 连接 从客户端接收服务器端事件似乎工作正常 但是我似乎无法从客户端发出任何事件 Client var socket io http loc
  • 如何在 Express (NodeJS) 中验证和处理表单

    Express 是否有首选的表单处理和验证库 我真的在寻找与 Django 表单中类似的抽象级别 即模板中的验证和错误报告 如果可以在客户端使用相同的验证 那就太好了 有人用过或者写过什么好东西吗 看起来有一个模块位于https githu
  • 如何在express中动态渲染/加载页面?

    我需要使用express gt 3 0 框架动态加载 渲染nodejs v1 8 15 中页面的一部分 一般来说 我想创建一个单页应用程序 我在页面顶部有一个带有链接的菜单 单击链接将更改下面的内容 就像 AJAX 页面加载一样 例如 gt
  • 解析函数是否异步传递给 Promise 执行器?

    我有以下代码 function myPromiseFunc return new Promise resolve gt resolve Promise resolve 123 据我们所知Promise resolve方法立即用普通值解析 P

随机推荐

  • 在 Flutter 中显示用户友好的错误页面而不是异常

    是否有可能使全局错误处理那将会显示用户友好的错误页面而不是显示红色异常 我已经做了错误处理 here https flutter io docs cookbook maintenance error reporting 这将向后端报告异常
  • 在 Android 中的 PDF 文档中添加位图图像

    请问 如何直接将位图图像传递到 pdf 文件 我用 GraphView 制作了一个图表 最后我在 OnClickListener 内将其转换为位图 write setOnClickListener new View OnClickListe
  • Kendo Grid 标题和数据行列未对齐

    我有剑道网格 问题是网格的标题和数据行列未正确对齐 以下是剑道网格代码 Html Kendo Grid Model Product Name Grid Scrollable a gt a Height auto Columns column
  • 如何在 R 中生成 data.frame 的相关图? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 这可能是一个简单的问题 我有一个 df 我想在 R 中为我的数据生成一个相关图 head df x y
  • 无法在所有计算机上访问 JAR 中的资源

    我正在编写一个应用程序 特别是 Bukkit Minecraft 服务器的插件 执行此操作需要我从应用程序的 JAR 访问 properties 文件 这是我遇到一个奇怪的问题的地方 当我在我的开发 PC 上测试该程序时 它运行得很好 pr
  • WebMatrix Database.Query 与自定义 CommandTimeout

    考虑以下带有 TestTable 和过程的 TestDb USE TestDb GO DROP TABLE dbo TestTable IF NOT EXISTS SELECT 1 FROM sys tables WHERE name Te
  • GAC 似乎包含两个具有相同名称、版本和公钥令牌的程序集

    我目前正在凝视这一页 http gacviewer cloudapp net Default aspx声称会列出典型 Azure VM 上的 GAC 内容 请注意 以下程序集和许多其他程序集列出了两次 AuditPolicyGPManage
  • 我如何在我的 Connect 4 java 代码中查看获胜者? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白如何在连四中找到获胜者 请告诉我我应该怎么想以及如何在连四中找到获胜者 我应该如何使用 for 循环来找到它们 我应该如何使用
  • BitTorrent 扩展协议

    我正在尝试用java编写自己的bittorrent客户端 这是一个make work项目来刷新我的java技能 我一直停留在开发的某个阶段 尽管有一些用于 BitTorrent 开发的论坛 但它们似乎并不十分活跃 到目前为止我可以执行以下操
  • Android ICS:JNI 错误尝试使用过时的本地引用 0x1

    将我的手机升级到 android 4 03 ics 后 我的游戏不再打开 它只是关闭 设备上没有任何错误消息 在 eclipse 上也有此消息 04 02 16 55 27 672 E dalvikvm 26884 JNI ERROR ap
  • VIM 在quickfix中搜索模式

    基本上我需要创建一个快速修复缓冲区 列出与正则表达式匹配的所有行 什么是最好的方法 全局命令可能不是最好的 但我认为它应该可用 全局命令的输出是完美的 但我需要它超级链接匹配的线 您也可以不使用全局命令并坚持使用内置命令 使用 vimgre
  • 在response.sendRedirect()中传递参数 - JSP

    我是网络技术新手 我正在尝试编写一个简单的程序 要求用户输入名称 如果有效 则页面重定向到另一个 jsp 文件 RedirectIfSuccessful jsp 如果无效则页面重定向到 RedirectIfFailed jsp 我正在使用r
  • 有没有办法访问 Skype IM 日志?

    我尝试查看 C Users name AppData Roaming Skype 发现一个名为 chatsync 的文件夹 其中有一些神秘的文件夹 其中的文件以 dat 结尾 我几乎可以肯定这些是聊天日志 但我不知道如何正确打开这些文件 记
  • 指定为定义者的 MySQL 用户不存在

    我正在尝试使用 php 调用存储过程 前一天这是有效的 但今天我收到一个错误 指定为定义者的用户 用户名 前一天的 ip 不存在 该程序位于主机中 我通过 cpanel 的远程 MySql 授予我的 IP 访问权限 我使用的代码是正确的 取
  • Haskell 中类型和数据类型有什么区别?

    我对 a 之间的区别有点困惑type and a 数据类型在哈斯克尔 从我遇到的文献中我得到的印象是它们是不同的概念 Type and 数据类型指的是完全相同的概念 Haskell 关键字type and data但有所不同 data允许您
  • 如何使用 Gson 反序列化带有可选字段的 json

    我使用 Gson 使用以下代码从给定 API 反序列化 JSON 字符串 Gson gson new Gson Map
  • Codeigniter URL 重写

    我正在使用以下内容htaccess脚本以便我可以隐藏index php来自 URI RewriteEngine on RewriteCond 1 index php resources assets robots txt RewriteCo
  • 如何使具有自定义布局的操作按钮的样式类似于 Android 3.0+ 中的标准操作按钮

    我在使用 honeycomb 操作栏中的自定义操作按钮时遇到了一些麻烦 我正在添加一个使用自定义布局的菜单项 使用 android actionLayout 属性 自定义布局的原因是我想要一个具有两行可以动态更新的文本的按钮 但是 我仍然希
  • 资源 -> 当前项目触发器已从 Apps 脚本代码编辑器中消失

    我使用 资源 gt 当前项目 触发器来控制某些项目的执行时间 例如 我的一些项目会每天早上 4 点左右更新电子表格 现在 当我单击 资源 时 当前项目触发器选项消失了 发生了什么 这个更改是在最后一天左右进行的 因为上次我在做一个项目时它就
  • 采用无服务器的 MoonMail Lambda 架构

    我一直在研究这个项目 因为让整个系统成为 Lambda 函数集合的想法似乎非常有吸引力 事实上 几年前我编写了一些软件 其功能与 MoonMail 几乎相同 并且由于某些规格发生了变化而需要更新 我正在评估将我的软件移植到 Lambda 或