以下是一个使用AWS SDK for Python(boto3)的示例代码,用于在ALB(Application Load Balancer)的目标组中设置响应超时时间:
import boto3
def update_target_group_response_delay(target_group_arn, response_delay):
# 创建ELBV2的客户端
elbv2_client = boto3.client('elbv2')
# 获取目标组的当前属性
response = elbv2_client.describe_target_group_attributes(
TargetGroupArn=target_group_arn
)
# 查找"deregistration_delay.timeout_seconds"属性的索引
deregistration_delay_index = next(
(index for (index, attr) in enumerate(response['Attributes']) if attr['Key'] == 'deregistration_delay.timeout_seconds'),
None
)
# 如果属性存在,则更新其值;否则,创建新的属性
if deregistration_delay_index is not None:
elbv2_client.modify_target_group_attributes(
TargetGroupArn=target_group_arn,
Attributes=[
{
'Key': 'deregistration_delay.timeout_seconds',
'Value': str(response_delay)
}
]
)
else:
elbv2_client.create_target_group_attributes(
TargetGroupArn=target_group_arn,
Attributes=[
{
'Key': 'deregistration_delay.timeout_seconds',
'Value': str(response_delay)
}
]
)
# 示例用法
target_group_arn = 'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-target-group/abcdef123456'
response_delay = 130
update_target_group_response_delay(target_group_arn, response_delay)
请将target_group_arn替换为您的目标组的ARN,将response_delay替换为您想要设置的响应超时时间(以秒为单位)。此代码将检查目标组的属性是否包含deregistration_delay.timeout_seconds,如果存在,则更新其值;否则,创建新的属性。