![](/img/trans.png)
[英]How to pass a string from python to AWS Run Powershell script commands section using boto3
[英]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 test1
和py -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.