繁体   English   中英

使用boto3从Powershell远程运行python脚本不起作用

[英]Using boto3 to run a python script from powershell remotely not working

我正在尝试使用boto3在Windows ec2实例中运行python文件。 我正在尝试使用AWS-RunPowerShellScript运行以下命令,这些命令在rdp进入ec2实例时均有效。

我正在使用的代码:DoStuffOnEc2.py

import boto3
resp = client.send_command(
        DocumentName="AWS-RunPowerShellScript", # One of AWS' preconfigured documents
        Parameters={'commands': ['md test1', 'py -3 make_test_dir.py']},
        InstanceIds=XXXXXXXXXX,
    )

make_test_dir.py

import os
os.system('md test2')

当我运行DoStuffOnEc2.py时,仅创建了test1目录。 当我使用rdp直接在Powershell上运行md test1py -3 make_test_dir.py时,都会创建test1和test2。

我将如何解决这个问题。 我通常使用linux,对Powershell没有经验,但是由于实例是Windows,因此必须使用它或CMD

我还计划在开始工作但将其调用另一个python脚本后,将其移至AWS Lambda。 如果有任何问题,请告诉我。

我猜想当您登录时,py -3 ...可以在您的PATH中使用b / c python,但是在SSM客户端运行它时却没有。 您可以尝试为“ py”可执行文件和python文件指定完整路径,以排除该路径。

要找到py.exe并进行故障排除,您可以使用get命令(简称gcm),如下所示:

(gcm py).source

应该会打印py.exe的完整路径。

您可以通过如上所述自动检测py的位置并使用'&'调用输出(字符串)来获得更好的表现,例如:

& (gcm py.exe).source -3 c:/temp/make_test_dir.py

注意:可以使用'/'代替'\\'。 Windows会很好用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM