Boto3脚本使用外部数据源以Terraform形式获取实例状态1/2或2/2 [英] Boto3 script to get Instance Status 1/2 or 2/2 in terraform using external data source
本文介绍了Boto3脚本使用外部数据源以Terraform形式获取实例状态1/2或2/2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您可以使用外部数据源帮助Boto3脚本获取Instance Status 1/2或2/2来检查Terraform吗?我是python和Terraform的新手.
Can you help me for Boto3 script to get Instance Status 1/2 or 2/2 check in terraform using external data source .I am new to python and Terraform .
推荐答案
Using bash as shown in the docs could be easier
get_instance_status.sh
#!/bin/bash
set -e
eval "$(jq -r '@sh "INSTANCE_ID=\(.id)"')"
status=$(aws ec2 describe-instance-status --instance-ids ${INSTANCE_ID} --output json --query 'InstanceStatuses[0]')
instance_status=$(echo ${status} | jq -r '.InstanceStatus.Details[0].Status')
system_status=$(echo ${status} | jq -r '.SystemStatus.Details[0].Status')
jq -n --arg inst_status "$instance_status" \
--arg sys_status "$system_status" \
'{"instance_status":$inst_status,"system_status":$sys_status}'
然后在您的TF中:
data "external" "instance_status" {
program = ["bash", "${path.module}/get_instance_status.sh"]
query = {
id = "i-08efdfdffb3"
}
}
output "test" {
value = data.external.instance_status.result
}
示例输出:
test = tomap({
"instance_status" = "passed"
"system_status" = "passed"
})
这篇关于Boto3脚本使用外部数据源以Terraform形式获取实例状态1/2或2/2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文