问题标签 [serverless-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 具有 azure 功能和 webpack 的无服务器
我想知道是否有人使用具有 azure 函数的无服务器框架以及如何处理跨函数和捆绑共享代码?
我正在将 hapi.js 应用程序转换为 serverless + serverless -azure-functions,并且我试图在部署之前捆绑我的代码,以便我可以使用各种require
可重用模块。
我发现serverless-webpack并创建了可能适用于 AWS Lambda 的捆绑包,但由于缺少function.json
文件(例如list-function.json
),天蓝色存在问题,因此这些功能在 azure-portal 中根本不可见,我也不能调用它们。
还找到了有关此问题的文章,但它显示了如何处理azure-functions-cli
仅支持 Windows 平台的问题。
最好的,JH
amazon-web-services - 使用 AWS Lambda 更新无服务器 CQRS + EventSourcing ReadModel
我正在尝试基于 AWS 无服务器架构实现 CQRS + 事件溯源后端。问题在于 readmodel 更新。
当事件保存到事件存储时,它会发布到 SNS。SNS 然后调用UpdateReadModel
lambda。当多个顺序事件发布到 SNS 时,会调用多个 lambda。
第一个问题是它们都执行相同的 ReadModel 更新,实际上只有一个 lambda 必须为所有事件调用。
第二个问题是,最终的 ReadModel 状态可能会在多次执行 lambdas 后被破坏。
要求每个 ReadModel 只调用一个 lambda。
可能的解决方案:
使用 MessageBroker(RabbitMQ 或 Kafka)+ EC2 实例调用
UpdateReadModelLambda
.在 SNS + EC2 实例之后添加 SQS,并编写调用 lambdas 并从 SQS 获取事件的代码。
但我不想使用实例,因为它不适合无服务器方法,开发人员应该手动管理和扩展容器或 MessageBus。
也许有人已经解决了这个问题或有其他云服务 + CQRS + EventSourcing 的解决方案?
javascript - 将 Node.js API 与 AWS Lambda 混合使用
我与我的经理就 AWS Lambda 的使用进行了永无休止的讨论。我想从你们中的一个人那里得到一些帮助。
我有点犹豫是否将无服务器架构用于生产级项目。首先,测试我在本地设置中构建的内容有点耗时。即使我们可以通过单元测试来测试代码,我们也无法消除模拟请求和响应对象失败的可能性。当我在开发过程中测试我的 Lambda 编写的 API 时,我无法在本地设置中调用 lambda 的事实让我非常无聊。其次,据我所知,AWS Lambda 的可用性和可靠性没有任何承诺的 SLA。这让我有点犹豫采用 Lambda 来构建 RESTful API。
所以现在我要做的是仅在捕获从 AWS 触发的事件时使用 Lambda。例如,在用户将他的个人资料图片上传到 S3 存储桶后执行某项操作,或者在用户通过 Cognito 注册后执行某项操作。
但是,我的经理期望将我的 Node.js API 与 AWS Lambda 混合用于一个项目。从我的角度来看,这完全没有意义。一旦我们在 EC2 实例上设置了 Node API,我认为考虑设置自动扩展或如何利用当前 EC2 上运行的所有资源会更有效率。但是我的经理坚持要我同时设置 Node API 和 Lambda API。例如,服务 A 和 B 将由 Node API 提供服务,服务 C、D 和 E 将由 AWS Lambdas 提供服务。
我之前尝试过,但它给我带来了很多困惑。我觉得在构建 API 时最好选择 Node API 或 AWS Lambda API,而不是将它们混合在一起。
我不想说我的经理完全是假的,我是对的。在这种情况下,我只想有一个明确的答案。对于这种情况,我真的很感激任何评论和答案。
amazon-web-services - lambda 调用另一个 lambda 并达到 1000 的并发阈值
场景 - 有一个主 lambda,他正在拆分工作并将其分配给多个其他 lambda(工人)。第一个 lambda 迭代并异步调用其他 lambda
如果生成的 lambda 数量超过 1000,它会失败吗?
两个 lambda 之间是否应该有一个 SNS...以便 SNS 重试?
或者更复杂的方法将消息放入队列,然后发送“X”个工作 lambda 的通知以开始轮询队列?
有没有更好的办法?
mongodb - Mongo 连接偶尔会使 lambda 函数超时
我一直在使用 MLab MongoDB 和 mongoose 库在无服务器 (Lambda) 处理程序中创建数据库连接。它可以在本地机器上顺利运行。但有时它在部署后不起作用。请求返回一个Internal server error
. 奇怪的是有时它会起作用。但是如果我删除数据库连接代码,处理程序就会工作。无服务器日志只是说Process exited before completing request
。没有真正的错误,所以不知道该怎么做。
数据库连接如下所示:handler.js
这里也没有错误。知道发生了什么吗?
amazon-web-services - 错误代码:AmazonSNS 中的 AuthorizationError
我试图创建一个 SNS 主题并从 lambda 发布消息。但是我在尝试这样做时遇到授权错误。
完全例外
我的 sam 模板看起来像这样
发送 sns 通知
可以允许任何用户使用控制台发布 sns 主题。我正在寻找一种使用 sam 模板的方法。
谢谢
azure - C#-Azure 函数:调用“HTTP Trigger”天蓝色函数时如何将消息记录到队列存储?
我在 C# 中有一个带有“HTTP Trigger”的天蓝色函数。当我使用“HTTP 触发器”调用 azure 函数时,我想将消息记录到队列存储中。
当调用“HTTP 触发器”时,它会在其他地方记录一条消息(log.info(“C# Http 触发器....”);),但我想将此日志消息与 ipaddress 一起记录,(当用户向“HTTP 触发器”发出请求时“函数)存储在队列存储(log.info(“C#队列触发器”,ipaddress))中,这样我就可以阻止客户端ipaddress一天,如果用户对api的调用超过了尝试次数,第二天我再次可以通过从队列存储中获取所有 ipaddress 来取消阻止客户端 ipaddress,从而在云中运行计时器触发器。
是否有可能实现这一点,否则除了队列存储之外,还有其他存储 ipaddress 的方法吗?
azure - 如何通过定时器触发器调用 Durable 函数?
我是 Durable 功能(编排功能)的新手,并且根据 Microsoft 文档查看了示例应用程序。所以我几乎没有疑问。
例子:
为了调用它,我使用邮递员发出了 HTTP POST 请求,因此请求成功处理,但是当我配置不同的动词(如 HTTP GET)时,它在控制台中以 NotFound 错误响应,并且来自浏览器的 HTTP 请求向它发出的请求以“NotFound”错误响应在控制台中。为什么会这样?
我可以使用计时器触发天蓝色功能调用任何编排功能吗?
如果不是为什么?
更新:
有关问题的一些其他详细信息
我可以通过计时器触发对 http 触发器的请求吗,为什么因为我的持久函数有长时间运行的过程,所以如果在计时器触发器本身中调用编排函数,那么可能有计时器触发超时的可能性,所以我为什么要尝试遵循这种方法。是可以通过上面的代码调用吗?
docker - 无服务器容器与其他容器的区别
我读过有人从 Docker 切换到无服务器,但我的头是什么,有什么性能差异吗?我的意思是,两者都是容器,所以应该没有任何区别?
假设您创建了一个返回特定计算数字的函数,并将其部署为无服务器并部署到 docker。我的猜测是两者都应该同样快速地执行该功能,我错了吗?
我的理解是,无服务器容器就像 Docker 一样,只是它们“更小”并且仅在调用函数时运行。
google-cloud-functions - 如何使用 FaaS 连接到任意数据库?
我刚刚阅读了一些关于无服务器计算和 FaaS 的文章。如果使用 FaaS 访问任意数据库,我们每次都需要建立和关闭数据库连接。在一个节点应用程序中,我们通常会建立一次连接并将其重用于多个请求。
正确的?
我在 mlab 有一个托管的 MongoDB,并考虑使用 Googles Cloud Functions Service 实现一个 REST API。不知道如何高效地处理数据库连接。
当然,在编码和测试时事情会变得更加清晰。但我想知道在花费大量时间之前成功的机会。
谢谢斯特凡