【问题标题】:Getting connection error while web scrapping in AWS Lambda在 AWS Lambda 中进行网络抓取时出现连接错误
【发布时间】:2022-08-18 15:15:07
【问题描述】:

我正在使用 EFS 为 Lambda 存储 python 包,并且我一直在运行这个简单的代码来检查站点的连接

import json 
import sys
sys.path.append(\"/mnt/access\")
import requests
from bs4 import BeautifulSoup

def lambda_handler(event, context):

     url = \"http://www.wordhippo.com/what-is/another-word-for/credit\"

     print(url)

     page = requests.get(url)
   # soup = BeautifulSoup(page.content, \'html.parser\')
     print(page) 

这是 CloudWatch 日志

[错误] ConnectionError: HTTPSConnectionPool(host=\'www.wordhippo.com\', 端口 = 443):最大重试次数超出 url: /what-is/another-word-for/credit.html(由 NewConnectionError(\'<urllib3.connection.HTTPSConnection 对象在 0x7eff5fa618e0>:建立新连接失败:[Errno 110] 连接超时\')) Traceback(最近一次通话最后一次):文件 \"/var/task/lambda_function.py\",第 126 行,在 lambda_handler 中 page = requests.get(url)   文件 \"/mnt/access/requests/api.py\",第 73 行,在 get return request(\"get\", url, params=params, **kwargs)   文件 \"/mnt/access/requests/api.py\",第 59 行,在请求中 return session.request(method=method, url=url, **kwargs)   文件 \"/mnt/access/requests/sessions.py\",第 587 行,在请求中 resp = self.send(prep, **send_kwargs) 文件 \"/mnt/access/requests/sessions.py\",第 701 行,在发送中 r = adapter.send(request, **kwargs)   文件 \"/mnt/access/requests/adapters.py\",第 565 行,在发送中 引发 ConnectionError(e, request=request)

  • 请不要将错误发布为屏幕截图,而是使用格式正确的代码块。此外,您的代码不是有效的 lambda 函数。
  • 抱歉所有问题。根据要求编辑
  • lambda 在 VPC 中吗?
  • 是的,它在默认的 aws VPC 中

标签: amazon-web-services web-scraping lambda amazon-efs


【解决方案1】:

VPC does not have 互联网访问中的 Lambda 函数(如果它位于公共子网中)。默认 VPC 只有公有子网。

启用 Internet 访问您的函数的最简单方法是不放置它在 VPC 中。

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多