【发布时间】:2019-08-08 03:31:57
【问题描述】:
我正在尝试使用外部数据源从 azure 动态获取 VM 列表并单独显示 VM。
下面是powershell脚本
$rgroup = [Console]::In.ReadLine()
$json = ConvertFrom-Json $rgroup
$name = $json.rg
$vm=Get-AzVM -ResourceGroupName $name | select name | convertTo-json
Write-Output "$vm"
Main.tf
variable "resourcegroup" {}
data "external" "test" {
program = ["Powershell.exe", "./vm.ps1"]
query = {
rg = "${var.resourcegroup}"
}}
output "value" {
value = "${data.external.test.result}"}
但是,我收到一个错误“命令“Powershell.exe”产生了无效的 JSON:json: cannot unmarshal number into Go value of type map[string]string”
有人可以告诉我如何遍历虚拟机列表并单独显示吗?
-------------已编辑------------
Powershell 脚本
$rgroup = [Console]::In.ReadLine()
$json = ConvertFrom-Json $rgroup
$name = $json.rg
$vms=(Get-AzVM -ResourceGroupName $name ).name
foreach ($vm in $vms){
$vmname= $vm |convertTo-json
Write-Output "{""Name"" : $vmname}"}
Main.tf
output "value" {
value = "${data.external.powershell_test.result.Name}"}
Powershell 输出
【问题讨论】:
标签: azure powershell terraform