[AWS SDK for Python (Boto3)] EC2 태그 정보로 EBS 태그 정보 설정

11677 단어 SDK파이썬boto3AWS

소개



EC2의 태그 정보를 바탕으로 EC2에 묶는 EBS에 태그 정보를 설정하는 스크립트의 소개입니다.
↓ 이와 같이, EBS의 태그 정보를 갱신합니다.


-f 옵션은 대상 EC2를 필터링합니다. EC2의 Name 태그에 포함된 문자열을 설정합니다. 문자열은 정방향 일치입니다. -f aws-test 로 지정하면 Name 태그가 aws-testかきくけこ인 EC2만 EBS 태그 업데이트의 대상이 됩니다. 대상의 EC2에 복수의 EBS가 연결되는 경우, 이들 모두가 대상이 됩니다.



실행 환경



Python 스크립트의 실행 환경은 Windows10입니다.
PS C:\> python --version
Python 3.9.5
PS C:\> pip list
Package         Version
--------------- --------
boto            2.49.0
boto3           1.17.104
botocore        1.20.104
pip             21.1.3
PS C:\> aws --version
aws-cli/2.2.16 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

스크립트



스크립트는 github에 저장했습니다.

스크립트 실행 방법


-f , -d 의 2 개의 옵션을 사용합니다.


옵션
개요


-f
EC2의 Name 태그에 포함된 문자열을 설정합니다. 문자열은 정방향 일치

-d
False를 지정하면 dry-run이 비활성화되고 EBS의 태그 정보를 설정합니다.


스크립트 실행 방법
PS C:\> python test.py -f {EC2 Nameタグのフィルタ文字列(前方一致)} -d False

실행예 1) EC2의 Name 태그의 문자열이 aws로 시작하는 EC2에 묶는 EBS를 태그 갱신의 대상으로 한다
PS C:\> python test.py -f aws -d False

실행예 2) EC2의 Name 태그의 문자열이 aws-test로 시작하는 EC2에 묶는 EBS를 태그 갱신의 대상으로 한다
PS C:\> python test.py -f aws-test -d False

실행 예 3) -d 옵션을 지정하지 않으면 dry-run이 활성화되고 처리 대상 정보 표시 만 수행됩니다.
PS C:\> python test.py -f {EC2 Nameタグのフィルタ文字列(前方一致)}

스크립트 실행 결과 샘플



스크립트를 실행했을 때의 출력 샘플입니다.
PS C:\Users\usr01\test> python setEbsTags.py -f aws-test -d False
Python Version Check [OK] : sys.version_info(major=3, minor=9, micro=5, releaselevel='final', serial=0)
==========================================================
[1]     ---------------------------
        EC2 InstanceID = i-00000000000000001
        タグ名= Name,   = aws-testかきくけこ
        タグ名= project,        = projectかきくけこ
        タグ名= cost,   = costかきくけこ
        EBS IDs= ['vol-000000000000001', 'vol-000000000000002']
==========================================================
----------------------------------------------------------
[Dry-run:OFF] EBSのタグ情報を更新->開始
[1](EBSタグ更新) ---------------------------
        EC2-ID=i-00000000000000001
        EBS=['vol-000000000000001', 'vol-000000000000002']
        Tags=[{'Key': 'Name', 'Value': 'aws-testかきくけこ'}, {'Key': 'project', 'Value': 'projectかきくけこ'}, {'Key': 'cost', 'Value': 'costかきくけこ'}]
[Dry-run:OFF] EBSのタグ情報を更新->終了
----------------------------------------------------------
PS C:\Users\usr01\test> 

좋은 웹페이지 즐겨찾기