Проблема при выполнении скрипта на ec2 с использованием Lambda - PullRequest
0 голосов
/ 22 февраля 2019

Я создал скрипт на 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, выдает ошибку

Я уже установил mysql.connector на Ec2

----------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

Вот лямбда, которую я создал

import boto3 import 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)

1 Ответ

0 голосов
/ 02 июля 2019

Установите соединитель mysql глобально для версии python в вашей системе, используя, так как вы используете команду python для выполнения скрипта, вероятно, это python 2.7, поэтому вы можете использовать следующую команду

sudo pip install mysql-connector-python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...