当我运行terraform plan时,它显示了一个更改的资源,它恰好是aws_s3_bucket_object中的JSON数据。但是JSON很长,很难看出是什么改变了。我怎样才能把它显示为差异呢?
发布于 2017-04-21 02:09:24
https://github.com/coinbase/terraform-landscape可以在这方面提供帮助。
gem install terraform_landscape (可能需要在macOS上使用sudo )terraform plan | landscape这显示了JSON更改为diff。下面是github站点的一个示例:

发布于 2018-07-30 04:38:35
我编写了一个bash脚本来格式化terraforms丑陋的策略输出:
#!/bin/bash
input=$( xclip -o )
old=$( echo "$input" | awk -F' => ' '{ print $1 }' | sed 's/\\n/\n\r/g' | sed 's/\\"/"/g' | sed 's/"{/{/' | sed 's/}"/}/' )
new=$( echo "$input" | awk -F' => ' '{ print $2 }' | sed 's/\\n/\n\r/g' | sed 's/\\"/"/g' | sed 's/"{/{/' | sed 's/}"/}/' )
echo "----------------------------------------------------------------------------------------------"
echo "old:"
echo "$old" | jq '.'
echo "----------------------------------------------------------------------------------------------"
echo "new:"
echo "$new" | jq '.'
echo "----------------------------------------------------------------------------------------------"
echo "diff:"
diff -u --color <( echo "$old" | jq '.' ) <( echo "$new" | jq '.' )
echo "----------------------------------------------------------------------------------------------"它显示了三个输出块,旧的,新的,然后差异。它利用了xclip、jq和diff。使用是(在Linux上)突出显示terrafrom输出,然后调用脚本(我称之为tf-diff,它位于~/bin中)。
https://stackoverflow.com/questions/43532785
复制相似问题