2016-03-28 9 views
0

Ich habe eine neue Lambda-Funktion in Python mit einem Handler namens handler erstellt. Im Abschnitt Konfiguration fordert AWS den Namen der Funktion in das Format file-name.function-name (wie beschrieben).Wie finde ich den Dateinamen der Lambda-Funktion?

Allerdings habe ich keine Ahnung, was der Dateiname sein soll. Ich habe eine leere Funktion erstellt und an keiner Stelle einen Dateinamen angegeben. Mein Funktionsname ist "MySQLTest", also habe ich verschiedene Dinge wie "MySQLTest.handler", "my-sql-test.handler", "mysqltest.handler" ausprobiert, aber nichts davon scheint zu funktionieren.

Irgendeine Idee, was ich als ein Dateiname setzen sollte?

Für Informationen, das ist der Test-Code Ich verwende:

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

Haben Sie diese Funktion über die Konsole AWS hinzufügen? – garnaat

+0

@garnaat, rechts, mit der AWS-Konsole –

Antwort

1

Wenn Sie die Funktion über die AWS-Konsole hinzufügen, der Name, den Sie <name of lambda function>.handler sein liefern sollte (vorausgesetzt, Sie Ihre Python-Funktion handler genannt.

Also, wenn der Name meiner Lambda-Funktion ist fooBar und meine Python-Funktion wird handler genannt würde ich fooBar.handler verwenden.

Verwandte Themen