如何使用Bash从Terraform的输出中提取出映射值进行使用的方法

首先

由于经常需要从Terraform的输出中提取映射值并使用,我将其作为备忘录记录下来。

关于方法

output "<output名>" {
  value = {
    for k, v in <リソース>.<リソース名> : k => v.<引数>
  }
}
    • output名

terraform outputで取り出すときの名前

リソース

クラウドのリソースの名前

リソース名

Terraform内のリソースの名前

k

mapのキー名

v.<引数名>

mapの値, 取り出したい引数名

outputs=( $(terraform output -json <output名> | jq -r 'keys[]') )
outputs=( $(terraform output -json <output名> | jq -r '.[]') )
for output in "${outputs[@]}"; do
    echo "$output"
done

简单地解释一下正在做什么,就是使用terraform命令以JSON格式输出output的值,然后用jq命令将JSON格式的值转换成在bash中可用的数组。

请安装jq,以便执行此脚本。

brew install jq

外传

output=$(terraform output -json <output名> | jq -r '.<mapのキー>')

这就是以上的内容。

最后

希望能对某人有所帮助。

bannerAds