使用外部数据源获取地形中实例状态1/2或2/2的Boto3脚本



你能帮我用Boto3脚本使用外部数据源在terraform中获取实例状态1/2或2/2检查吗?我是python和terraform的新手。

使用文档中显示的bash可能更容易

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"
})

最新更新