我目前有以下内容:tf = Terraform()tf.init()tf.plan(capture_output=False)approve = {"auto-approve": True}print(tf.apply(capture_output=False, auto_approve=True, skip_plan=True,**approve))这工作得很好,但我需要把它放到一个子进程中。我试过以下方法:tf = Terraform()tf.init()tf.plan(capture_output=False)approve = {"auto-approve": True}subprocess.check_output(['tf.apply','capture_output','0', 'auto_approve','1', 'skip_plan','1','**approve'])但是,我收到错误消息:“'tf.apply' 未被识别为内部或外部命令、可运行程序或批处理文件。”我可以将上述转换为子流程吗?如果是这样,怎么办?
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
subprocess
执行外部命令。相比之下,您正在尝试执行类似(但不完全是)Python 代码。这根本行不通。
您可以做的是创建一个包含您的 Terraform 代码的 Python 脚本并通过subprocess.check_output
. 但是,这仅在 Python 脚本完成时才有效。你不能像你的情况那样执行一个片段。
对于您可以执行的操作的最小示例,请获取原始脚本,将其另存为tf.py
并在 Python 中像这样执行它:
subprocess.check_output(['python', 'tf.py'])
添加回答
举报
0/150
提交
取消