boto3でロードバランサの情報を取得を取得する。CLBとALB/NLBで利用するAPIが異なるので注意する。
Ubuntu18.04 LTS
Python 3.6.9
boto3 (1.11.8)
import boto3
from boto3.session import Session
# セッションのセットアップ
# aws cliの利用時に profileを設定していれば boto3が勝手に拾ってくれるようだ
def setup():
session = Session(
profile_name = "profile_hoge"
)
return session
# CLBの情報取得
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elb.html#ElasticLoadBalancing.Client.describe_load_balancers
def get_clb_info(sess):
elb = sess.client("elb")
elb_info = elb.describe_load_balancers()
for i in elb_info["LoadBalancers"]:
lb_name = i["LoadBalancerName"]
# ... その他色々情報が取れるが、LBによっては欠損している(辞書のKeyごと存在しない)情報もあるので
# 辞書での情報取得時はKeyが事前にあるかどうかを確認した方がいい
# NLB/ALBの情報取得
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elbv2.html#ElasticLoadBalancingv2.Client.describe_load_balancers
def get_elb_info(sess):
elb = sess.client("elbv2")
elb_info = elb.describe_load_balancers()
for i in elb_info["LoadBalancers"]:
lb_name = i["LoadBalancerName"]
# ... その他色々情報が取れるが、LBによっては欠損している(辞書のKeyごと存在しない)情報もあるので
# 辞書での情報取得時はKeyが事前にあるかどうかを確認した方がいい
if __name__ == '__main__':
sess = setup()
get_clb_info(sess)
get_elb_info(sess)
ドキュメントではそのような記述が見当たらなかった気がするのだが、 “elb” で取得できるのはCLBの情報で、“elbv2” で取得できるのはNLBやALBの情報のようだ。