【问题标题】:Getting output powershell function for terraform获取 terraform 的输出 powershell 功能
【发布时间】:2019-12-31 14:22:00
【问题描述】:

我正在使用 powershell 脚本来执行一个 terraform 命令,当我将它与我的代码内联时,我会将 terraform 信息打印到主机上,这正是我想要的。

一旦我将命令包装在一个函数中,我就没有得到 terraform 输出(只有在有错误响应时才会得到错误响应)。

有没有办法让输出从函数中实时返回(所以我不会坐在那里想知道发生了什么)?

前:

Terraform init

对比

Function Example 
{
    PARAM($dirPath)
    cd $dirPath
    terraform init
}
Example -dirPath "C:\Test\"

此外,如果 terraform 响应中存在错误并停止脚本,是否有办法实际捕获?我已经设置了 erroractionpreference = 'Stop' 但这似乎没有捕捉到 terraform 错误。

【问题讨论】:

  • this 能帮上忙吗?
  • 就是这样!谢谢!!
  • 不客气!很高兴能帮上一点忙。
  • 添加它作为答案,我会接受它

标签: powershell terraform


【解决方案1】:

根据要求,评论作为答案。

要从外部应用程序捕获输出,您可能需要将 error 输出流重定向到 success 输出流,以便同时接收它们。
为此,您可以在函数中使用以下内容:

terraform init 2>&1

2> 使用&1 将错误输出流 (stderr) 重定向到成功流 (stdout),这样您将合并两个流。

所有这些都比我在manojlds 尤其是mklement0this question 的回答中解释得更好很多

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 2019-12-05
    • 2013-12-26
    • 2012-08-12
    • 1970-01-01
    • 2020-05-27
    • 2021-03-31
    • 2021-11-14
    相关资源
    最近更新 更多