I am working with aws boto3, still very new to coding & have to find how to drill down my output to only return load balancers/target groups with no target connections.
def gettargets(arn):
tglist=elb.describe_target_health(TargetGroupArn=arn)
targets=[]
for targetid in tglist["TargetHealthDescriptions"]:
targets.append(targetid['Target']['Id'])
print("Targets:",targets)
elbs = elb.describe_load_balancers(PageSize=100)
for loadbalancer in elbs["LoadBalancers"]:
print("\n"*2)
print("-"*8)
print("ELB Name:",loadbalancer["LoadBalancerName"])
print("Type:",loadbalancer["Type"])
print("Scheme:",loadbalancer["Scheme"])
print("TargetGroups:",str(gettargetgroups(loadbalancer["LoadBalancerArn"])))
for tgs in gettargetgrouparns(loadbalancer["LoadBalancerArn"]):
gettargets(tgs)
The Output looks like
--------
ELB Name: example-elb
Type: application
Scheme: internet-facing
TargetGroups: ['example-tg']
Targets: ['i-09876543210']
--------
ELB Name: example-alb-2
Type: application
Scheme: internal
TargetGroups: ['example-tg-2']
Targets: []
I need help returning the sections with empty Targets: []
Should I put an if statement in the getargets function or make an if statement for at the bottom. I can sort of read python, and have yet to be able to conceptualize structure and how the pieces work.
You're don't actually 'return' anything here, you just dump results to the screen immediately as you get them.
Split logic and printing and there you have it.