python-2.7 - 使用 Lambda 在 ec2 上执行脚本时出现问题
问题描述
我在 python 中创建了一个脚本来在 MySQL 5.7 中创建一个数据库
这是脚本
import io
import os
import json
import requests
import subprocess
import mysql.connector
try:
#Create Database Connection
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="****"
)
mycursor = mydb.cursor()
dbStatus = mycursor.execute(createDatabaseQuery)
print('Database Created')
except Exception as e :
print ("Error while connecting to MySQL", e)
finally:
#closing database connection.
if(mydb .is_connected()):
mydb.close()
当我手动运行它时,它会创建一个数据库,但是当我使用 AWS Lambda 执行脚本时,它会给我一个错误
我已经在 Ec2 上安装了 mysql.connector
----------ERROR-------
Traceback (most recent call last):
File "CreateBrand.py", line 6, in <module>
import mysql.connector
ImportError: No module named mysql.connector
failed to run commands: exit status 1
这是我创建的 Lambda
导入 boto3 导入 json
def lambda_handler(事件,上下文):
#boto3 Clients
instanceID = ['i-*******']
params={"commands":["cd /var/www/html/sites"]}
cmd = 'touch /var/www/html/sites/demo'
runscript = 'sudo python CreateDB.py'
try:
ssm_client = boto3.client('ssm')
response = ssm_client.send_command(
InstanceIds=instanceID,
DocumentName="AWS-RunShellScript",
Parameters={"workingDirectory": ["/var/www/html/sites/"], "executionTimeout": ["3600"], "commands": [runscript]}, )
except Exception as e:
print(e)
解决方案
为系统上的 python 版本全局安装 mysql 连接器,就像您使用 python 命令执行脚本一样,它可能是 python 2.7,因此您可以使用以下命令
sudo pip install mysql-connector-python
推荐阅读
- android - 当我返回上一页时,我的应用程序崩溃了
- android - 用户注销后停止接收推送通知
- slack - 用于获取可用工作区的 Slack API
- java - 在java中读取excel中的特定列
- java - 音频流未在 setOnItemClickListener 上播放
- javascript - 如何在javascript中单击按钮后找到增量最近(最近)文本框值
- neo4j - 空手道是否支持 Neo4j 数据库?
- certificate - keyStore.getKey() 返回 NULL
- c - 第一次匹配后如何终止grep管道
- java - com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: