Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Amazon web services 通过Cloudwatch触发时AWS Lambda超时_Amazon Web Services_Aws Lambda_Amazon Vpc - Fatal编程技术网

Amazon web services 通过Cloudwatch触发时AWS Lambda超时

Amazon web services 通过Cloudwatch触发时AWS Lambda超时,amazon-web-services,aws-lambda,amazon-vpc,Amazon Web Services,Aws Lambda,Amazon Vpc,我有一个lambda函数,它向外部API发出请求,而外部API需要一个到白名单的静态IP。为了解决这个问题,我创建了一个具有指定弹性IP的VPC 在AWS Lambda控制台上进行测试时,该功能工作正常,但如果使用EventBridge(CloudWatch事件)触发,它总是超时: 2020-10-01T11:12:29.219Z 012df4ee-bb1e-4821-b1a2-6c3396ca760b Task timed out after 720.00 seconds 我原以为问题出在

我有一个lambda函数,它向外部API发出请求,而外部API需要一个到白名单的静态IP。为了解决这个问题,我创建了一个具有指定弹性IP的VPC

在AWS Lambda控制台上进行测试时,该功能工作正常,但如果使用EventBridge(CloudWatch事件)触发,它总是超时:

2020-10-01T11:12:29.219Z 012df4ee-bb1e-4821-b1a2-6c3396ca760b Task timed out after 720.00 seconds

我原以为问题出在VPC上,但考虑到手动触发VPC的效果,我认为cloudwatch如何触发该功能可能存在问题


以前是否有人遇到过此问题?

无法为AWS Lambda函数分配弹性IP地址

相反:

  • 创建弹性IP地址
  • 在公用子网中创建NAT网关或NAT实例,并将专用子网配置为使用NAT网关/NAT实例
  • 将弹性IP地址与NAT网关/NAT实例关联
  • 配置Lambda函数以连接到专用子网
Lambda功能随后将使用分配的弹性IP地址,通过NAT网关/NAT实例访问互联网


请参阅:

您的职能部门是否需要访问任何aws服务?(公共端点)您所说的“具有指定的弹性IP”是什么意思?您对弹性IP地址做了什么?函数是否具有允许事件调用它的正确权限?@TraychoIvanov是的,它需要访问S3,并且我已将端点配置为com.amazonaws.eu-west-2.S3。如前所述,该功能在手动触发时可以工作-因此我不明白为什么它在被cloudwatch触发时不工作?@nmcdonald我认为是这样,因为这在过去是有效的。正在调用该函数,但大部分时间都超时。这就是我的VPC的设置方式,手动触发时该函数工作。CloudWatch日志中显示了什么?你能确定是哪一行代码导致了“挂起”吗?不幸的是,我看不到问题中的代码片段。似乎所有的代码都没有开始运行,因为函数开始时有print语句——它永远不会运行,然后超时。我建议您使用类似的配置创建一个新函数,但只让它输出“print”语句。试着按计划进行。如果这样做有效,那么将代码复制过来,看看是否有效。基本上,“某物”是不同的,这是一个弄清楚它的问题。或者,如果您已经订阅了AWS支持,他们将能够帮助您。Ok将试一试。谢谢你的帮助!