2016-03-28 20 views
0

Python'da handler adlı işleyiciyle yeni bir lambda işlevi oluşturdum. Yapılandırma bölümünde, AWS işlevinin adını file-name.function-name formunda (here açıklandığı gibi) koymamı gerektirir. Ancak, dosya adının ne olduğu konusunda hiçbir fikrim yok. Boş bir işlev oluşturdum ve herhangi bir noktada bir dosya adı belirtmedim. Benim işlev adı "MySQLTest" yani "MySQLTest.handler", "my-sql-test.handler", "mysqltest.handler" gibi çeşitli şeyler denedim ama hiçbiri işe yaramıyor.Lambda işlevinin dosya adı nasıl bulunur?

Dosya adı olarak ne yazmalıyım?

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 konsolu üzerinden bu işlevi eklediniz mi? – garnaat

+0

@garnaat, AWS konsolu ile birlikte –

cevap

1

AWS Konsolu aracılığıyla işlevini ekliyorsanız sağladığınız adı olmalıdır <name of lambda function>.handler (eğer Python fonksiyonunu handler denilen varsayarak: bilgi için

, bu kullanıyorum Test kodudur. benim Lambda işlevinin adı fooBar ve eğer

Yani, benim Python fonksiyonu handler Ben fooBar.handler kullanacağı denir.

İlgili konular