AWS ELB 네임태그 생성 자동화 스크립트

IT/Python3 2020. 8. 10. 22:00
반응형

이전에 람다를 만들 때 실력이 쬐끔 녹스는 느낌이 들기에, 복습겸 공유겸 ELB 태그 네임 자동화 스크립트를 한번 쭉 훑어보고 있습니다.

퓨어한 파이썬3의 문법 내용은 아니므로, 스크립트 스캔 시 유의!

본 글은, ECS 클러스터 인스턴스 태그 네이밍 자동화 시, 같이 개발된 파이썬 런타임 람다 스크립트입니다.

devloper-angmond.tistory.com/10?category=867517

 

AWS 태그 네이밍 람다 스크립트 트러블슈팅 일지

오늘은 참 신기한 일이 있었댜... 어쩌면 지금까지 맹신하고 있었던 AWS 리소스들에 대한 API 명세서를 다시 한번 읽어보아야겠다는 의심을 가지는 하루.. 먼저 플랫폼에 대한 아키텍처를 하기와 �

devloper-angmond.tistory.com

 

import boto3
import os
import sys
import uuid, json
from urllib.parse import unquote_plus

"""
ELB 유니크 네임을 이용한, ELB 네임태그 자동화 람다

@auth : 클라우드 개발자 앙몬드
@since : 2020-08-10
"""

# elb-name-tagging-lambda
# (CLB + ALB + NLB)
def lambda_handler(event, context):
    # (0) ELB 버전_1 (Classic Load Balancer) 커넥터 생성
    clb = boto3.client('elb')
    list_clb = clb.describe_load_balancers()["LoadBalancerDescriptions"]

    # (1) ELB 버전_1 에 대하여, Name 태그 추가하기
    for lb in list_clb :
        clb.add_tags(
            LoadBalancerNames = [ lb["LoadBalancerName"] ],
            Tags = [
                {
                    "Key" : "Name",
                    "Value" : "clb-" + lb["LoadBalancerName"],
                }]
        )
    
    # (2) ELB 버전_2 (ALB & NLB) 커넥터 생성
    elbv2 = boto3.client('elbv2')
    list_elbv2 = elbv2.describe_load_balancers()["LoadBalancers"]

    # (3) ELB 버전_2에 대하여, Name 태그 추가하기
    #       ELB_v2 는, 네트워크로드밸런서 & 어플리케이션로드밸런서, 타입이 2개이므로, 이에 따라 네이밍 분기조건이 필요
    for lbv2 in list_elbv2:
        lbv2_tag_name = ""
        if lbv2["Type"] == "application" : 
            lbv2_tag_name = "alb-" + lbv2["LoadBalancerName"]
        else :
            lbv2_tag_name = "nlb-" + lbv2["LoadBalancerName"]
        
        elbv2.add_tags(
                ResourceArns=[ lbv2["LoadBalancerArn"] ],
                Tags=[
                    {
                        'Key': 'Name',
                        'Value': lbv2_tag_name
                    }]
        )
반응형

설정

트랙백

댓글