姓名' conn'未定义:NameError

时间:2018-03-12 14:05:58

标签: python-3.x postgresql amazon-web-services aws-lambda

我想将我的aws iot mqtt消息存储到我的postgresql中。为此,我已将本地posrtgresql连接到amazon RDS实例。现在,我需要在amazon lambda calculus之间创建一个连接,然后将数据发送到postgresql数据库。但无论何时,我正在测试我的lambda演算,它给了我" name' conn'未定义:NameError"错误。这是我在aws lambda中的python代码。我还将psycopg2库包含在我的项目中。

Option Explicit

Dim gReg_Userform As Reg_Userform

Sub conRegBox(control As IRibbonControl)

  If Not gReg_Userform Is Nothing Then
    On Error Resume Next
    If gReg_Userform.ActiveWkbk.FullName <> ActiveWorkbook.FullName Then
      Unload gReg_Userform
      Set gReg_Userform = Nothing
    End If
  End If

  If gReg_Userform Is Nothing Then
    Set gReg_Userform = New Reg_Userform
  End If

  With gReg_Userform
    Set .ActiveWkbk = ActiveWorkbook
    .Show
  End With

End Sub

1 个答案:

答案 0 :(得分:1)

您正在隐藏真实的错误消息。 Python的异常处理模式类似于this

try:
    conn = psycopg2.connect(host=rds_host,
                            user=name,
                            password=password,
                            database=db_name)
except Exception as e:
    print(e)

这样您就会看到真正的错误消息:

  

无效的dsn:无效的连接选项“passwd”

编辑#1:

“超时”表示由于RDS实例的“安全组规则”,lambda无法连接。请记住,即使公共RDS实例默认也有IP入站限制(即,它可以从PC连接,但从AWS Lambda连接是不可能的。)

RDS wizard RDS instance options