当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda中的Python请求超时

张翰音
2023-03-14

Python请求从以下URL的AWS Lambda超时。

工作url-https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json

下面是我正在使用的代码。

import requests

def lambda_handler(event, lambda_context):
    headers = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
    
    with requests.session() as rq:
        print("Loading cookies")
        rq.get("https://www.nseindia.com/get-quotes/derivatives?symbol=NIFTY", headers=headers)

        print("Execute get request")
        result = rq.get("https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY", headers=headers)

我的Lambda使用的是Python3.7运行时,不与任何VPC关联,并且超时设置为1分钟。我试着用Lambda执行超时5分钟,还是没有运气。

函数日志:START RequestId:0f69a07d-6139-4aab-b1cf-310b19243735版本:$最新启动请求会话...正在加载Cookie结束请求D:0F69A07D-6139-4AAB-B1CF-310B19243735报表请求D:0F69A07D-6139-4AAB-B1CF-310B19243735持续时间:60000毫秒计费持续时间:128 MB内存大小:使用的最大内存:59 MB初始化持续时间:383.95毫秒2020-11-17T04:58:34.039 Z 0F69A07D-6139-4AAB-B1CF-310B19243735任务在60.06秒后超时

我猜这可能与user-agent头有关。如有任何帮助,我们将不胜感激。

共有1个答案

华瀚漠
2023-03-14

可能是https://www.nseindia.com/阻止AWS IP是因为它们不想被刮走?

这是我从我的一台EC2机器上打开它时得到的

[ec2-user@ip-10-2-120-90 ~]$ curl https://www.nseindia.com/get-quotes/derivatives?symbol=NIFTY
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;nseindia&#46;com&#47;get&#45;quotes&#47;derivatives&#63;" on this server.<P>
Reference&#32;&#35;18&#46;d6d3dead&#46;1605602802&#46;2598bb12
</BODY>
</HTML>
 类似资料:
  • 问题内容: 在尝试为uWSGI中的请求设置超时时,我不确定设置是否正确。似乎有多个超时选项(套接字,接口等),并且不清楚要配置哪个设置或在哪里进行设置。 我正在寻找的行为是延长对REST应用程序的资源层的请求可以花费的时间。 问题答案: 您可能正在寻找 harakiri 参数- 如果请求花费的时间超过指定的harakiri时间(以秒为单位),则该请求将被删除,并且相应的工作程序将被回收。 对于独立

  • 我已经使用zappa在aws lambda上部署了一个flask应用程序,现在该应用程序在所有endpoint上都运行良好,除了我的主endpoint,当我对其发出post请求时,它返回{“消息”:“endpoint请求超时”} 真的需要一个修复或想法如何克服这个我需要调用分析路线,部署的url是 https://2ixfyfcsik.execute-api.eu-west-2.amazonaws

  • 我正在处理一个Python金字塔rest api,在其中一个请求中,我需要处理一个excel,每一行我都会得到GPS坐标并进行大量验证,这意味着这个请求可能只需要大约10分钟的处理时间,我需要用json向调用方返回一个响应。我不能通过WebSocket发送任何其他内容。 我的问题是:如何增加此请求的超时?这是我的方法: 谢谢任何帮助

  • 当没有响应返回时,我需要超时我的RESTAPI。例如,当我发出请求时,如果返回响应需要5秒钟以上,则超时。 为了实现这一点,我选择了使用Hystrix的断路器。但我不确定这是否是解决此问题的正确方法,如果一切都好,是否应该对Hystrix进行更多配置? 我当前的实现看起来像, 主类 RestController 应用程序属性 当超时时,它抛出一个HystrixRunTimeException,并由

  • Middleware: 请求超时 请求超时控制也是不可或缺的中间件: <?php class RequestTimeout implements Middleware { public $timeout; public $exception; private $timerId; public function __construct($timeout, \Ex