我在Python中使用子进程并在运行时传递ec2实例id。虽然给出了实例id,但它是一个字符串并抛出错误,说实例id无效。请不要建议boto3包,因为我的公司限制使用它。我的问题是如何在运行时发送字符+整数+特殊字符。
PGM:
#!/bin/python
import subprocess
import sys
def describe_one(instanceid):
subprocess.call(["aws", "ec2", "describe-instances", "--instance-ids", '"instanceid"'])
if __name__ == "__main__":
instanceid=sys.argv[1]
describe_one(instanceid)
输出
# ./sample.py i-061e41edcc2afc01
调用DescribeInstances操作时发生错误(InvalidInstanceID.Malformed):无效的ID:"" instanceid""
答案 0 :(得分:1)
您打算传递文字字符串attachMediaStream = function (a, b) {
console.log("Attaching media stream");
a.mozSrcObject = b;
a.play();
return a
};
reattachMediaStream = function (b, a) {
console.log("Reattaching media stream");
b.mozSrcObject = a.mozSrcObject;
b.play()
}
吗?
当然你的意思是使用它的价值?
"instanceid"
或
subprocess.call(["aws", "ec2", "describe-instances", "--instance-ids", f'"{instanceid}"'])
如果不使用Python3.6
答案 1 :(得分:0)
这与“传递整数或字符类型”无关,无论这意味着什么。
您传递的是文字值"instanceid"
,并带有引号,而不是您脚本的instanceid参数值。你确实做过两组报价。
(实际上,你应该对你的老板使用boto3采取这种愚蠢的“限制”。如果没有正确的工具,就不能指望你做你的杜松子酒。)