如何解决在post api调用中检索值-terraform
我一直在尝试使用terraform编写代码,该代码必须在POST上进行API调用,并且必须在post上获取返回值,post上的返回值必须能够在代码中的其他地方使用。
看了很多书,我发现有两种方法可以做到
- Mastercard Rest API
- Local-Exec和Null提供程序
当我们尝试在post上获取值时,第一个也有一些问题,不幸的是,我尝试调用的API需要一些输入值才能返回输出。如果有人有使用万事达卡rest api进行此操作的经验,请告诉我。
我的curl语句看起来像这样-
curl --insecure -X POST 'https://url.fqdn/get_hostname' --header 'Content-Type: application/json' --header 'Authorization: Basic tokenvalue' -d '{"key": "value","key": "value","key": "value"}'
使用local-exec和null提供程序
resource "null_resource" "get-hostname" {
provisioner "local-exec" {
command = <<EOF
curl --insecure -X POST 'https://url.fqdn/get_hostname' --header 'Content-Type: application/json' --header 'Authorization: Basic tokenvalue' -d '{"key1": "value1","key2": "value2"}'
EOF
}
}
如何获取command属性的输出?
解决方法
您可以将curl的输出重定向到一个文件,并在另一个null_resource块中处理该文件,而该文件与写入文件的文件明确相关。