You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Lambda调用SSM执行EC2实例Python脚本提示命令未识别如何解决

问题原因

SSM Agent执行AWS-RunPowerShellScript文档时默认使用Local System账户运行命令,存在两种常见路径不生效的情况:

  • 你配置的Python路径属于当前登录用户的用户级环境变量,Local System账户无法读取
  • 就算配置了系统级环境变量,SSM Agent未重启的情况下不会加载更新后的环境变量
解决方案

方案1(最稳妥,无需修改实例配置):直接调用Python的绝对路径

  1. 登录EC2实例,在可正常执行Python的PowerShell窗口运行以下命令获取Python可执行文件的完整路径:
(Get-Command python).Source

假设返回结果为C:\Python311\python.exe,将你的Lambda代码中的命令替换为使用全路径调用即可:

response = ssm_client.send_command(
            InstanceIds=['i-*********'],
            DocumentName="AWS-RunPowerShellScript",
            Parameters={'commands': [f'set-location -path {path}; C:\\Python311\\python.exe myfile.py']}, )

方案2:修复环境变量加载问题

如果你需要直接使用python别名调用,按以下步骤操作:

  • 确认你已经将Python安装目录(比如C:\Python311)和Scripts目录(比如C:\Python311\Scripts)添加到系统环境变量的Path中,而非当前用户的Path
  • 登录EC2实例执行以下命令重启SSM Agent,加载最新的系统环境变量:
Restart-Service AmazonSSMAgent

排查方法

如果还是有问题,可以先通过SSM发送以下命令打印当前运行环境的PATH变量,确认Python路径是否已经被加载:

$env:PATH

内容的提问来源于stack exchange,提问作者Sairam Ravuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:57:02