Boto3脚本使用外部数据源以Terraform形式获取实例状态1/2或2/2 [英] Boto3 script to get Instance Status 1/2 or 2/2 in terraform using external data source

查看:67
本文介绍了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 .

推荐答案

使用bash,如

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆