- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我与经理就 AWS Lambda 的使用进行了无休止的讨论。我想从你们中得到一些帮助。
我对于将无服务器架构用于生产级项目还有些犹豫。首先,测试我在本地设置中构建的内容有点耗时。即使我们可以通过单元测试来测试代码,我们也无法消除模拟请求和响应对象失败的可能性。事实上,我无法在本地设置中调用 lambda,这让我在开发过程中测试 Lambda 编写的 API 时感到非常无聊。其次,据我所知,到目前为止,AWS Lambda 的可用性和可靠性还没有 promise 的 SLA。这让我有点犹豫是否采用 Lambda 来构建 RESTful API。
所以现在我所做的就是仅在捕获从 AWS 触发的事件时才使用 Lambda。例如,在用户将其个人资料图片上传到 S3 存储桶后执行某些操作,或者在用户通过 Cognito 注册后执行某些操作。
但是,我的经理期望将我的 Node.js API 与 AWS Lambda 混合用于单个项目。从我的 Angular 来看,这完全没有意义。一旦我们在 EC2 实例上设置了 Node API,我认为考虑设置自动扩展或如何利用当前 EC2 上运行的所有资源会更有成效。但我的经理坚持要求我同时设置 Node API 和 Lambda API。例如,服务 A 和 B 将由 Node API 提供服务,服务 C、D 和 E 将由 AWS Lambdas 提供服务。
我以前尝试过,但这给我带来了很多困惑。我觉得在构建 API 时最好选择 Node API 或 AWS Lambda API,而不是将它们混合在一起。
我不想说我的经理完全是假的,我是对的。我只想在这种情况下得到一个明确的答案。我非常感谢有关这种情况的任何评论和答案。
最佳答案
只是对之前的答案添加一些想法:
First of all, its a bit time-consuming to test what I am building in the local setup. Even if we can test the code through the unit testing, we cannot remove the possiblity of faliure of mocked request and response objects. The fact that I cannot invoke the lambda in my local setup makes me very bored when I am testing my Lambda-written API during the development process
当然,您可以在本地环境中构建、测试和模拟 Lambda Invoke,这只是一个新范例,并且有 some tools来帮助你。
Secondly, as far as I know so far, there is no promised SLA for AWS Lambda for its availability and reliability. This just make me kind of hesitate adopting Lambda to build RESTful API.
AWS Lambda 在 AWS“计算层”基础设施上运行,因此我相信,如果它们在计算层上遇到问题,那么您的 EC2 实例肯定也会面临中断。
Once we have set up Node API on EC2 instances, I think it will be more productive to think about setting up auto-scaling or how to utilize all the resources running on the current EC2s
我不这么认为。无服务器堆栈可轻松扩展,您无需管理基础设施。
I tried it before, but it caused a lot of confusion to me. I feel like it will be better to choose either Node API or AWS Lambda API when building an API instead of mixing them together.
欢迎使用微解耦服务!开发服务很容易,但管理整个基础设施却很困难。
与经理谈论架构时要记住的另一件事:成本
这很难争论,当每个经理看到以低成本运营业务的可能性时,他们都会眼睛发光。让您的服务使用无服务器堆栈运行非常便宜。
底线:
不,按照经理的意愿混合资源并不是一个坏主意。
是的,获取一个框架来编写 api、设置 EC2 实例和自动扩展组会更容易。
是的,解耦服务会带来很大的麻烦,但在生产环境中运行时会付出代价。
关于javascript - 将 Node.js API 与 AWS Lambda 混合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212719/
可以使用 lambda 和函数创建有序对(Lisp 中的缺点),如 Use of lambda for cons/car/cdr definition in SICP 所示。 它也适用于 Python
我正在尝试从另一个调用一个 AWS lambda 并执行 lambda 链接。这样做的理由是 AWS 不提供来自同一个 S3 存储桶的多个触发器。 我创建了一个带有 s3 触发器的 lambda。第一
根据以下源代码,常规 lambda 似乎可以与扩展 lambda 互换。 fun main(args: Array) { val numbers = listOf(1, 2, 3) f
A Tutorial Introduction to the Lambda Calculus 本文介绍乘法函数 The multiplication of two numbers x and y ca
我想弄清楚如何为下面的表达式绘制语法树。首先,这究竟是如何表现的?看样子是以1和2为参数,如果n是 0,它只会返回 m . 另外,有人可以指出解析树的开始,还是一个例子?我一直找不到一个。 最佳答案
在 C++0x 中,我想知道 lambda 函数的类型是什么。具体来说: #include type1 foo(int x){ return [x](int y)->int{return x * y
我在其中一个职位发布中看到了这个问题,它询问什么是 lambda 函数以及它与高阶函数的关系。我已经知道如何使用 lambda 函数,但不太自信地解释它,所以我做了一点谷歌搜索,发现了这个:What
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
Evaluate (((lambda(x y) (lambda (x) (* x y))) 5 6) 10) in Scheme. 我不知道实际上该怎么做! ((lambda (x y) (+ x x
我正在处理 MyCustomType 的实例集合如下: fun runAll(vararg commands: MyCustomType){ commands.forEach { it.myM
Brian 在他对问题 "Are side effects a good thing?" 的论证中的前提很有趣: computers are von-Neumann machines that are
在 Common Lisp 中,如果我希望两个函数共享状态,我将按如下方式执行 let over lambda: (let ((state 1)) (defun inc-state () (in
Evaluate (((lambda(x y) (lambda (x) (* x y))) 5 6) 10) in Scheme. 我不知道实际上该怎么做! ((lambda (x y) (+ x x
作为lambda calculus wiki说: There are several possible ways to define the natural numbers in lambda cal
我有一个数据类,我需要初始化一些 List .我需要获取 JsonArray 的值(我使用的是 Gson)。 我做了这个函数: private fun arrayToList(data: JsonAr
((lambda () )) 的方案中是否有简写 例如,代替 ((lambda () (define x 1) (display x))) 我希望能够做类似的事情 (empty-lam
我在 Java library 中有以下方法: public void setColumnComparator(final int columnIndex, final Comparator colu
我正在研究一个函数来计算国际象棋游戏中棋子的有效移动。 white-pawn-move 函数有效。当我试图将其概括为任一玩家的棋子 (pawn-move) 时,我遇到了非法函数调用。我已经在 repl
考虑这段代码(在 GCC 和 MSVC 上编译): int main() { auto foo = [](auto p){ typedef decltype(p) p_t;
我正在阅读一个在 lambda 内部使用 lambda 的片段,然后我想通过创建一个虚拟函数来测试它,该函数从文件中读取然后返回最大和最小数字。 这是我想出来的 dummy = lambda path
我是一名优秀的程序员,十分优秀!