【问题标题】:"errorMessage": "lambda_handler() takes 0 positional arguments but 2 were given","errorMessage": "lambda_handler() 接受 0 个位置参数,但给出了 2 个",
【发布时间】:2022-07-31 18:18:54
【问题描述】:

此代码在我的机器上正常运行,但在 AWS Lambda 中出错:

import pymysql

dbhost = 'database.ap-south-1.rds.amazonaws.com'
dbuser = 'admin'
dbpass = 'admin123'
dbname = 'classicmodels'
connection = pymysql.connect(host=dbhost, user=dbuser, password=dbpass, database=dbname)

def lambda_handler():
  cursor = connection.cursor()
  cursor.execute('SELECT * FROM Persons')
  rows = cursor.fetchall()
  for row in rows:
    print ("{0} {1} {2}".format(row[0], row[1], row[2]))

lambda_handler()
{
"errorMessage": "lambda_handler() takes 0 positional arguments but 2 were given",
"errorType": "TypeError",
"requestId": "fb790715-91f1-4f7a-961f-b83485d23b68",
"stackTrace": ["  File \"/var/runtime/awslambdaric/bootstrap.py\", line 149, in handle_event_request\n    response = request_handler(event, lambda_context)\n"
]
}

Function Logs
START RequestId: fb790715-91f1-4f7a-961f-b83485d23b68 Version: $LATEST
[ERROR] TypeError: lambda_handler() takes 0 positional arguments but 2 were given
Traceback (most recent call last):
File "/var/runtime/awslambdaric/bootstrap.py", line 149, in handle_event_request
response = request_handler(event, lambda_context)END RequestId: fb790715-91f1-4f7a-961f-b83485d23b68
REPORT RequestId: fb790715-91f1-4f7a-961f-b83485d23b68  Duration: 1.07 ms   Billed Duration: 2 ms   Memory Size: 128 MB Max Memory Used: 44 MB

【问题讨论】:

  • 函数名可能有冲突。尝试将函数名称 lambda_handler() 更改为其他名称。

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


【解决方案1】:

不要调用处理程序:

lambda_handler()

AWS Lambda 服务将在调用函数时调用处理程序。

另外,Lambda 函数应该定义为:

def lambda_handler(event, context):

event 将包含有关触发事件的信息,context 将包含有关 Lambda 部署环境的信息。

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 2014-11-26
    • 1970-01-01
    • 2016-10-13
    • 2020-06-13
    • 1970-01-01
    • 2022-01-17
    • 2019-09-21
    • 2019-07-19
    相关资源
    最近更新 更多