如何将Terraform与Azure CLI和REST API结合起来?

如何将Terraform与Azure CLI和REST API结合起来?,azure,terraform,Azure,Terraform,我的大部分Azure基础设施都是用Terraform管理的。 然而,我很快发现很多小细节都遗漏了 e、 g.不完全支持客户机密 似乎无法将Active Directory提供程序添加到APIM 创建APIM会在其上留下无法删除的演示产品 等等等等 这些问题的解决方案似乎正在利用cli e、 g 或者回到REST API: 例如 如何将terraform与CLI和REST API混合使用 它们能嵌入到地形中吗 或者我只是在terraform完成后运行一些命令来运行它们 有没有一种跨平台执行这

我的大部分Azure基础设施都是用Terraform管理的。 然而,我很快发现很多小细节都遗漏了

e、 g.不完全支持客户机密

似乎无法将Active Directory提供程序添加到APIM

创建APIM会在其上留下无法删除的演示产品

等等等等

这些问题的解决方案似乎正在利用cli

e、 g

或者回到REST API: 例如

如何将terraform与CLI和REST API混合使用

它们能嵌入到地形中吗

或者我只是在terraform完成后运行一些命令来运行它们

有没有一种跨平台执行这些命令的方法

在terraform之后运行CLI和REST API是否会导致状态错误,并可能在下次运行terraform时导致问题

如何将terraform与CLI和REST API混合使用

您可以使用Terraform provisioner
local exec
remote exec
。通过这些方法,可以使用CLI命令或REST API运行脚本。有关详细信息,请参阅和。但是你需要照顾他们。这两种方法只是运行脚本并显示输出,但它们没有输出

如果要将同一Terraform文件中的脚本结果用于其他资源,则需要使用Terraform外部数据源,请参阅详细信息

更新:

这里有一个例子

Bash脚本文件
vmTags.sh

#!/bin/bash
az vm show -d -g myGroup -n myVM --query tags
Terraform外部数据源:

data "external" "test" {
  program = ["/bin/bash", "./vmTags.sh"]
}

output "value" {
  value = "${data.external.test.result}"
}

您能否给出一个使用az cli或rest api的外部数据源的示例?