当我尝试连接到awsrds(MySQL)时,大多数时候我都会收到一个InterfaceError。当我编辑Lambda代码并重新运行时,它第一次可以正常工作,但随后发生了相同的错误。在

我的代码:import sys

import logging

import pymysql

import json

import traceback

rds_host = "*****.rds.amazonaws.com"

name = "*****"

password = "****"

db_name = "myDB"

logger = logging.getLogger()

logger.setLevel(logging.INFO)

try:

conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)

except:

logger.error("ERROR: Unexpected error: Could not connect to MySql instance.")

sys.exit()

logger.info("SUCCESS: Connection to RDS mysql instance succeeded")

def handler(event, context):

sub = event['sub']

username = event['username']

givenname = event['givenname']

isAdmin = event['isAdmin']

print (sub)

print (username)

print (givenname)

print (isAdmin)

data = {}

cur = conn.cursor()

try:

cmd = "SELECT AuthState FROM UserInfo WHERE UserName=" + "\'" + username + "\'"

rowCnt = cur.execute(cmd)

print (cmd)

except:

print("ERROR: DB Query Execution failed.")

traceback.print_exc()

data['errorMessage'] = 'Internal server error'

response = {}

response['statusCode'] = 500

response['body'] = data

return response

if rowCnt <= 0:

print (username)

data['errorMessage'] = 'No User Name Found'

response = {}

response['statusCode'] = 400

response['body'] = data

conn.close()

return response

for row in cur:

print row[0]

if int(row[0]) == 0:#NOT_AUTHORIZED

ret = "NOT_AUTHORIZED"

elif int(row[0]) == 1:#PENDING

ret = "PENDING"

elif int(row[0]) == 2:#AUTHORIZED

ret = "AUTHORIZED"

else:#BLOCKED

ret = "BLOCKED"

data['state'] = ret

response = {}

response['statusCode'] = 200

response['body'] = data

conn.close()

return response

堆栈跟踪:

^{pr2}$

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐