【问题标题】:Error in sending Python API request from AWS Lambda python function从 AWS Lambda python 函数发送 Python API 请求时出错
【发布时间】:2022-11-23 13:15:15
【问题描述】:

我正在尝试从 AWS python lambda 函数发送 POST 请求,但在发送时出现以下错误:

[错误]连接错误:HTTPConnectionPool(主机= ********************s3-website.ap-south-1.amazonaws.com', port=80): 最大重试次数超过 url: / (由NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f69fdfbda90>: Failed to establish a new connection: [Errno 110] Connection timed out')) 追溯(最近一次通话):

![回复]

我尝试使用以下代码:

import json
import uuid
import datetime
import re
import base64
import requests
import httpx
import asyncio
def lambda_handler(event,context):

    INVENTORY_CP_OPERATION_URL="************.s3-website.ap-south- 
                 1.amazonaws.com/"
    message={
       "email":"*******@********.com",
       "password":"123456"
        }
    result=requests.post(**************,json=message)
    return "success".

【问题讨论】:

  • 您的 AWS Lambda 函数是否连接到 VPC?如果是这样,是否有这样做的特殊原因?如果不是,请断开 Lambda 函数与 VPC 的连接,然后重试。让我们知道会发生什么。
  • 是的,先生,通过断开 VPC,它工作正常。
  • 这能解决您的问题吗?

标签: python amazon-web-services aws-lambda aws-lambda-layers


【解决方案1】:

鉴于您的Connection timed out,您的 AWS Lambda 函数似乎难以连接到 Internet。

当 AWS Lambda 函数是不是连接到 VPC, 它可以直接访问 Internet。

然而,当一个 Lambda 函数连接到 VPC,只有当 Lambda 函数连接到私有子网并且公共子网中有 NAT 网关时,它才能访问 Internet。

因此,如果函数不需要访问 VPC 中的任何资源(例如 Amazon RDS 数据库),那么最好断开它与 VPC 的连接.

【讨论】:

  • 是的,我们将 VPC 连接到仍无法访问互联网的子网。
猜你喜欢
  • 1970-01-01
  • 2021-07-23
  • 2021-11-06
  • 2019-10-06
  • 2021-11-26
  • 2021-02-28
  • 2022-09-27
  • 2023-03-18
相关资源
最近更新 更多