{"id":220,"date":"2017-08-23T22:41:22","date_gmt":"2017-08-23T22:41:22","guid":{"rendered":"http:\/\/www.mrmarkyoung.com\/oracle\/?p=220"},"modified":"2017-11-30T13:15:19","modified_gmt":"2017-11-30T03:15:19","slug":"lambda-function-in-aurora","status":"publish","type":"post","link":"http:\/\/www.mrmarkyoung.com\/oracle\/2017\/08\/23\/lambda-function-in-aurora\/","title":{"rendered":"Lambda Function in Aurora"},"content":{"rendered":"<p>How to create a lambda function to insert some records in an Aurora Database in AWS. Here is some sample code. This will enable us to link to databases in AWS to perform some functions.<\/p>\n<pre class=\"lang:default decode:true \" >import sys\r\nimport logging\r\nimport rds_config\r\nimport pymysql\r\n#rds settings\r\nrds_host  = \"auroratest.xxxx.ap-southeast-2.rds.amazonaws.com\"\r\nname = rds_config.db_username\r\npassword = rds_config.db_password\r\ndb_name = rds_config.db_name\r\n\r\n\r\nlogger = logging.getLogger()\r\nlogger.setLevel(logging.INFO)\r\n\r\ntry:\r\n    conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)\r\nexcept:\r\n    logger.error(\"ERROR: Unexpected error: Could not connect to MySql instance.\")\r\n    sys.exit()\r\n\r\nlogger.info(\"SUCCESS: Connection to RDS mysql instance succeeded\")\r\ndef handler(event, context):\r\n    \"\"\"\r\n    This function fetches content from mysql RDS instance\r\n    \"\"\"\r\n\r\n    item_count = 0\r\n\r\n    with conn.cursor() as cur:\r\n        cur.execute(\"create table Employee3 ( EmpID  int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (EmpID))\")\r\n        cur.execute('insert into Employee3 (EmpID, Name) values(1, \"Mark\")')\r\n        cur.execute('insert into Employee3 (EmpID, Name) values(2, \"Rob\")')\r\n        cur.execute('insert into Employee3 (EmpID, Name) values(3, \"Manoj\")')\r\n        conn.commit()\r\n        cur.execute(\"select * from Employee3\")\r\n        for row in cur:\r\n            item_count += 1\r\n            logger.info(row)\r\n            #print(row)\r\n\r\n\r\n    return \"Added %d items from RDS MySQL table\" %(item_count)\r\n<\/pre>\n<p>You also need to create a configuration file that contains the user name, password and database name<\/p>\n<pre class=\"lang:default decode:true \" >db_username = \"user\"\r\ndb_password = \"password\"\r\ndb_name = \"AURORATEST\" \r\n<\/pre>\n<p>You can execute the function like this from opening a database connection from MySQL Workbench<\/p>\n<pre class=\"lang:default decode:true \" title=\"Execute Lambda Function\" >call mysql.lambda_async('arn:aws:lambda:ap-southeast-2:319596327168:function:MARKTEST','')\r\n                         <\/pre>\n","protected":false},"excerpt":{"rendered":"<p>How to create a lambda function to insert some records in an Aurora Database in AWS. Here is some sample code. This will enable us to link to databases in AWS to perform some functions. import sys import logging import rds_config import pymysql #rds settings rds_host = &#8220;auroratest.xxxx.ap-southeast-2.rds.amazonaws.com&#8221; name = rds_config.db_username password = rds_config.db_password db_name &#8230; <a title=\"Lambda Function in Aurora\" class=\"read-more\" href=\"http:\/\/www.mrmarkyoung.com\/oracle\/2017\/08\/23\/lambda-function-in-aurora\/\" aria-label=\"Read more about Lambda Function in Aurora\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[58],"class_list":["post-220","post","type-post","status-publish","format-standard","hentry","category-aws","tag-lambda"],"_links":{"self":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/comments?post=220"}],"version-history":[{"count":3,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/220\/revisions"}],"predecessor-version":[{"id":263,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/220\/revisions\/263"}],"wp:attachment":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/media?parent=220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/categories?post=220"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/tags?post=220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}