如何找到lambda函数的文件名?
How to find filename of lambda function?
我在 Python 中使用名为 handler
的处理程序创建了一个新的 lambda 函数。在配置部分,AWS 要求我以 file-name.function-name
的形式输入函数名称(如 here 所述)。
但是我不知道文件名应该是什么。我创建了一个空白函数并且在任何时候都没有指定文件名。我的函数名称是 "MySQLTest",所以我尝试了各种方法,例如 "MySQLTest.handler"、"my-sql-test.handler"、"mysqltest.handler",但其中的 none 似乎有效。
知道我应该把什么作为文件名吗?
有关信息,这是我正在使用的测试代码:
import sys
import logging
import rds_config
import pymysql
#rds settings
rds_host = "*******"
# "rds-instance-endpoint"
name = rds_config.db_username
password = rds_config.db_password
db_name = rds_config.db_name
port = 3306
logger = logging.getLogger()
logger.setLevel(logging.INFO)
server_address = (rds_host, port)
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):
"""
This function fetches content from mysql RDS instance
"""
item_count = 0
try:
with conn.cursor() as cur:
cur.execute("create table Employee3 ( EmpID int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (EmpID))")
cur.execute('insert into Employee3 (EmpID, Name) values(1, "Joe")')
cur.execute('insert into Employee3 (EmpID, Name) values(2, "Bob")')
cur.execute('insert into Employee3 (EmpID, Name) values(3, "Mary")')
cur.execute("select * from Employee3")
for row in cur:
item_count += 1
logger.info(row)
#print(row)
finally:
conn.close()
return "Added %d items from RDS MySQL table" %(item_count)
如果您通过 AWS 控制台添加函数,您提供的名称应该是 <name of lambda function>.handler
(假设您调用 Python 函数 handler
.
因此,如果我的 Lambda 函数的名称是 fooBar
并且我的 Python 函数称为 handler
,我将使用 fooBar.handler
.
我在 Python 中使用名为 handler
的处理程序创建了一个新的 lambda 函数。在配置部分,AWS 要求我以 file-name.function-name
的形式输入函数名称(如 here 所述)。
但是我不知道文件名应该是什么。我创建了一个空白函数并且在任何时候都没有指定文件名。我的函数名称是 "MySQLTest",所以我尝试了各种方法,例如 "MySQLTest.handler"、"my-sql-test.handler"、"mysqltest.handler",但其中的 none 似乎有效。
知道我应该把什么作为文件名吗?
有关信息,这是我正在使用的测试代码:
import sys
import logging
import rds_config
import pymysql
#rds settings
rds_host = "*******"
# "rds-instance-endpoint"
name = rds_config.db_username
password = rds_config.db_password
db_name = rds_config.db_name
port = 3306
logger = logging.getLogger()
logger.setLevel(logging.INFO)
server_address = (rds_host, port)
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):
"""
This function fetches content from mysql RDS instance
"""
item_count = 0
try:
with conn.cursor() as cur:
cur.execute("create table Employee3 ( EmpID int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (EmpID))")
cur.execute('insert into Employee3 (EmpID, Name) values(1, "Joe")')
cur.execute('insert into Employee3 (EmpID, Name) values(2, "Bob")')
cur.execute('insert into Employee3 (EmpID, Name) values(3, "Mary")')
cur.execute("select * from Employee3")
for row in cur:
item_count += 1
logger.info(row)
#print(row)
finally:
conn.close()
return "Added %d items from RDS MySQL table" %(item_count)
如果您通过 AWS 控制台添加函数,您提供的名称应该是 <name of lambda function>.handler
(假设您调用 Python 函数 handler
.
因此,如果我的 Lambda 函数的名称是 fooBar
并且我的 Python 函数称为 handler
,我将使用 fooBar.handler
.