簡體   English   中英

嘗試從 ssm 運行 ec2 python 腳本時出現“ImportError: No module named sqlalchemy”錯誤

[英]'ImportError: No module named sqlalchemy' error when trying to run ec2 python script from ssm

我正在嘗試使用來自 Lambda 的 ssm runShellScript 在我的 ec2 實例上運行 python 腳本。 使用創建文本文件的簡單腳本進行測試時,它運行沒有問題。 我可以在 ec2 上看到文本文件。 但是當嘗試運行預期的 python 腳本 (analyzer.py) 時,我收到以下錯誤:'ImportError: No module named sqlalchemy'

腳本analyzer.py 使用了sqlalchemy 模塊。 當我直接從 ec2 服務器運行analyzer.py 時,腳本運行得很好。 想法?

原因是當使用 ssm runShellScript 向 ec2 實例發送命令時,您以“root”身份運行,我認為它沒有安裝 sqlalchemy 庫。 您需要以“ec2-user”(或安裝了 sqlalchemy 的任何用戶帳戶)身份運行。

我使用以下方法使其工作:

  1. 在 /home/ec2-user/run_analyzer.sh 中創建一個包含以下內容的文件:
cd <folder that contains analyzer.py>
python analyzer.py
  1. 使 /home/ec2-user/run_analyzer.sh 可執行(例如,使用“chmod +x /home/ec2-user/run_analyzer.sh”)
  2. 在您的 boto3 腳本中使用 ssm 如下:
import boto3
ssm_client = boto3.client('ssm')
ssm_client.send_command(
    InstanceIds=["<put your instance id here>"],
    DocumentName="AWS-RunShellScript",
    Parameters={'commands': [
       "sudo -i -u ec2-user /home/ec2-user/run_analyzer.sh"
    ]} )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM