解除遅延が未設定では300秒になっており、
リリースの際ALBから切り離すのを待つのが地味につらいため、60秒に一括で変更したかった。
Management Consoleからポチポチ変更しても良かったが、面倒なのでスクリプトで。
import boto3
timeout_seconds = 60
elbv2 = boto3.client('elbv2')
target_groups = elbv2.describe_target_groups()['TargetGroups']
for target_group in target_groups:
print('# ' + target_group['TargetGroupName'])
attr = elbv2.describe_target_group_attributes(TargetGroupArn=target_group['TargetGroupArn'])['Attributes']
now_timeout_seconds = filter(lambda x: x['Key'] == 'deregistration_delay.timeout_seconds', attr)[0]['Value']
if int(now_timeout_seconds) > timeout_seconds:
print('modify deregistration_delay timeout_seconds')
elbv2.modify_target_group_attributes(
TargetGroupArn=target_group['TargetGroupArn'],
Attributes=[{
'Key': 'deregistration_delay.timeout_seconds',
'Value': str(timeout_seconds)
}]
)
else :
print('not change: ' + now_timeout_seconds)
属性の変更ならこの部分を変更すれば大体行けるはず
filter(lambda x: x['Key'] == ${変更したい属性}, attr)[0]['Value']
使い捨てスクリプトだが、似たようなことをまたやるだろうからメモ