gpt4 book ai didi

azure - 无法使用外部数据源获取数据

转载 作者:行者123 更新时间:2023-12-03 04:49:49 25 4
gpt4 key购买 nike

我正在尝试使用 terraform 中的外部数据源从 azure 获取值。但是,当我尝试使用写入输出导出值时,我不明白我做错了什么,出现错误

data.external.powershell_test: data.external.powershell_test: command "Powershell.exe" produced invalid JSON: invalid character 'l' looking for beginning of object key string"

下面是我的脚本

$vm=(Get-AzureRmVM -ResourceGroupName MFA-RG -Name vm2).name | convertTo-json
Write-Output "{""first"" : ""$vm""}"

主.tf文件

data "external" "powershell_test" {
program = ["Powershell.exe", "./vm.ps1"]
}

output "value" {
value = "${data.external.powershell_test.result.first}"
}

有人可以告诉我脚本有什么问题吗?如果我正确使用写出?

已编辑-------------

下面是我直接运行vm.ps1时的截图 enter image description here

此外,当我直接为变量赋值时,terraform 能够执行代码。

$vm = "testvm"
Write-Output "{""first"" : ""$vm""}"

enter image description here

最佳答案

对于您的问题,您应该像这样更改 PowerShell 命令:

$vm=(Get-AzureRmVM -ResourceGroupName MFA-RG -Name vm2).name | convertTo-json
Write-Output "{""first"" : $vm}"

您可以像这样或不这样更改数据源中的代码,但我建议您这样做:

data "external" "powershell_test" {
program = ["Powershell.exe", "${path.module}/vm.ps1"]
}

我这边的结果如下:

enter image description here

我使用新的 Azure PowerShell 模块 Az,我的代码显示如下:

PowerShell:

$vm=(Get-AzVM -ResourceGroupName charles -Name azureUbuntu18).name | convertTo-json
Write-Output "{""first"" : $vm}"

地形:

data "external" "powershell_test" {
program = ["Powershell.exe", "${path.module}/vm.ps1"]
}

output "value" {
value = "${data.external.powershell_test.result.first}"
}

关于azure - 无法使用外部数据源获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55146079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com