フォルダー構造
$ tree -a
.
├── .env
├── function_update.sh
├── index.js
└── test_local.js
maria_read/index.js
// ---------------------------------------------------------------// maria_read/index.js//// Jun/08/2020//// ---------------------------------------------------------------'use strict'// ---------------------------------------------------------------asyncfunctionread01(mysql,host,user,password,data_base){try{console.error("*** read01 *** start ***")varconn=awaitmysql.createConnection({host:host,user:user,password:password,database:data_base})constsql_str='select * from cities'console.error(sql_str)const[rows,fields]=awaitconn.execute(sql_str)vardict_aa=newObject()rows.forEach(function(row){dict_aa[row.id]={"name":row.name,"population":row.population,"date_mod":row.date_mod}})returndict_aa}catch(ee){console.log(ee)console.error("*** error *** read01 ***")console.error(ee)return''}finally{if(conn&&conn.connection){conn.end()}}}// ---------------------------------------------------------------asyncfunctionmain(){varmysql=require('mysql2/promise')consthost=`${process.env.host}`constuser=`${process.env.user}`constpassword=`${process.env.password}`constdata_base=`${process.env.data_base}`console.error("host = "+host)console.error("user = "+user)console.error("password = "+password)console.error("data_base = "+data_base)constdict_aa=awaitread01(mysql,host,user,password,data_base)console.error("*** main *** end ***")returndict_aa}// ---------------------------------------------------------------console.error("*** 開始 ***")exports.handler=async(event,context,callback)=>{console.error("***** start maria_read PM 20:20 ***")varrvalue={}rvalue['message']='Hello from maria_read'constdict_aa=awaitmain()rvalue['data']=dict_aaconstresponse={statusCode:200,body:JSON.stringify(rvalue),}console.error("***** end maria_read ***")callback(null,response)// return response}// ---------------------------------------------------------------
test_local.js
// ---------------------------------------------------------------// test_local.js//// Jun/08/2020//// ---------------------------------------------------------------'use strict'// ---------------------------------------------------------------varmaria_read=require('./')// ---------------------------------------------------------------functionfunc01(aaa,rvalue){console.error("*** func01 *** start ***")// console.log(aaa)console.log(rvalue)console.error("*** func01 *** end ***")}// ---------------------------------------------------------------console.error("*** 開始 *** test_local.js ***")constevent={}constcontext=""maria_read.handler(event,context,func01)console.error("*** 終了 *** test_local.js ***")// ---------------------------------------------------------------
実行スクリプト
export NODE_PATH=/usr/lib/node_modules
node -r dotenv/config ./test_local.js
AWS のプログラムを更新するスクリプト
function_update.sh
FUNCTION='maria_read'ZIP_FILE=$FUNCTION".zip"#rm-f*.zip
#
zip -r$ZIP_FILE index.js
##
aws lambda update-function-code \--function-name$FUNCTION\--zip-file fileb://$ZIP_FILE#