如何将Terraform与Azure CLI和REST API结合起来?
我的大部分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如何将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完成后运行一些命令来运行它们 有没有一种跨平台执行这
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的外部数据源的示例?