Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AWS Lambda在VPC中提供的并发性(ColdStart)_C#_.net Core_Aws Lambda_Amazon Vpc - Fatal编程技术网

C# AWS Lambda在VPC中提供的并发性(ColdStart)

C# AWS Lambda在VPC中提供的并发性(ColdStart),c#,.net-core,aws-lambda,amazon-vpc,C#,.net Core,Aws Lambda,Amazon Vpc,我在VPC内有一个AWS Lambda(连接到RDS),它存在典型的冷启动问题。我读了几篇关于如何使事情更快的文章,所以我部署了 详细信息:.NET Core 3.1环境,在AWS Lambda中运行的ASP.NET Core项目,连接PostgreSQL RDS dbo,VPC环境 在测试阶段,为了尽可能降低成本,我只提供了3个并发性(10美元) 在配置并发之前,数小时不活动后的第一个请求需要15到20秒。接下来的请求很快就被触发了,只花了不到一秒钟的时间。然后,一些请求又随机花费了15秒(我

我在VPC内有一个AWS Lambda(连接到RDS),它存在典型的冷启动问题。我读了几篇关于如何使事情更快的文章,所以我部署了

详细信息:.NET Core 3.1环境,在AWS Lambda中运行的ASP.NET Core项目,连接PostgreSQL RDS dbo,VPC环境

在测试阶段,为了尽可能降低成本,我只提供了3个并发性(10美元)

在配置并发之前,数小时不活动后的第一个请求需要15到20秒。接下来的请求很快就被触发了,只花了不到一秒钟的时间。然后,一些请求又随机花费了15秒(我认为是由于并行调用)

在配置并发性之后,一天不活动之后的第一个请求需要14秒

我对供应并发的期望是摆脱冷启动。AWS博客或其他博客支持了我的愿望,但是,仍然有一个问题。我认为这是由于专有网络


感谢您的任何提示或经验分享

我个人更喜欢使用Cloudwatch,而不是每5-10分钟ping一次lambda。工作绝对享受,成本最低。另外,您正在记录默认情况下发生的事情,因此易于管理

这里有一个很好的指南:


我应该补充一点,根据AWS关于可用性的建议,我通常在一个VPC中跨两个AZ安装lambda。

我个人更喜欢使用Cloudwatch,而不是每5-10分钟ping一次lambda。工作绝对享受,成本最低。另外,您正在记录默认情况下发生的事情,因此易于管理

这里有一个很好的指南:


我应该补充一点,根据AWS关于可用性的建议,我通常在一个VPC中跨两个AZ提供lambda。

感谢Johnny的回复!不幸的是,使用CloudWatch进行Lambda升温是不起作用的。看起来只有当Lambda尝试连接到DBO(ping未调用)时才为VPC提供底层网络接口。当cloudwatch ping发生时,应该提供Lambda ENI。因为lambda需要调用一个弹性网络面。话虽如此,我使用的cloudwatch服务是通过VPC端点的,因此所有内容都是通过VPC路由的,因此lambda必须有一个ENI连接到VPC才能调用。是的,我明白你的意思。你知道我的设置有什么问题吗?我有CloudWatch ping(我在日志中看到它每5分钟发生一次),但是请求仍然是随机的,从30秒到19秒不等。考虑到你的CloudWatch、lambda和postgres都是VPC端点,唯一跳出的是.net环境。如果lambda容器保持温暖,那么如果代码没有被经常使用,代码仍然有可能需要编译。Lambda在python或node.js中工作得最好/最快,因为没有编译时间。我在使用Java时看到了滞后,所以我现在倾向于使用python来处理所有事情。但是,您是否在上设置了并发性?但有报道称,即使使用.net,也可能需要比python长一倍的时间,特别是在内存需求更大的情况下。我想我现在开始问客户的问题是,为什么VPC中需要lambda,通常是出于安全目的。然而,我发现这种推理是由于知识上的差距,因此我们检查了VPC之外的lambda上的所有安全约束,在大多数情况下,如果配置正确,则可以将lambda留在VPC之外。。。然而,我知道这并不总是可能的。。。但它确实消除了很多令人头痛的问题。谢谢约翰尼的回复!不幸的是,使用CloudWatch进行Lambda升温是不起作用的。看起来只有当Lambda尝试连接到DBO(ping未调用)时才为VPC提供底层网络接口。当cloudwatch ping发生时,应该提供Lambda ENI。因为lambda需要调用一个弹性网络面。话虽如此,我使用的cloudwatch服务是通过VPC端点的,因此所有内容都是通过VPC路由的,因此lambda必须有一个ENI连接到VPC才能调用。是的,我明白你的意思。你知道我的设置有什么问题吗?我有CloudWatch ping(我在日志中看到它每5分钟发生一次),但是请求仍然是随机的,从30秒到19秒不等。考虑到你的CloudWatch、lambda和postgres都是VPC端点,唯一跳出的是.net环境。如果lambda容器保持温暖,那么如果代码没有被经常使用,代码仍然有可能需要编译。Lambda在python或node.js中工作得最好/最快,因为没有编译时间。我在使用Java时看到了滞后,所以我现在倾向于使用python来处理所有事情。但是,您是否在上设置了并发性?但有报道称,即使使用.net,也可能需要比python长一倍的时间,特别是在内存需求更大的情况下。我想我现在开始问客户的问题是,为什么VPC中需要lambda,通常是出于安全目的。然而,我发现这种推理是由于知识上的差距,因此我们检查了VPC之外的lambda上的所有安全约束,在大多数情况下,如果配置正确,则可以将lambda留在VPC之外。。。然而,我知道这并不总是可能的。。。但它确实消除了很多令人头痛的问题。