2016-03-28 5 views
0

Я создал новую функцию лямбда в Python с обработчиком под названием handler. В разделе «Конфигурация» AWS требует от меня указать имя функции в форме file-name.function-name (как описано here).Как найти имя функции лямбда?

Однако я не знаю, каким должно быть имя файла. Я создал пустую функцию и не указывал имя файла в любой момент. Мое имя функции - «MySQLTest», поэтому я пробовал разные вещи, такие как «MySQLTest.handler», «my-sql-test.handler», «mysqltest.handler», но ни один из них не работает.

Любая идея, что я должен указать как имя файла?

Для информации, это тестовый код, я использую:

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) 
+0

вы добавили эту функцию с помощью консоли AWS? – garnaat

+0

@ garnaat, справа, с консолью AWS –

ответ

1

При добавлении функции через AWS Console имя, которое вы должны поставить <name of lambda function>.handler (предполагая, что вы назвали вашу функцию Python handler.

Итак, если имя моей функции лямбда fooBar и моя функция Python называется handler Я хотел бы использовать fooBar.handler.

Смежные вопросы