我是AWS上的新手,我能够通过Network Load Balancer上的目标组注册EC2实例。我在具有不同端口的EC2实例上部署了4种不同的服务,并在网络负载平衡器上为其端口(即8081,8082等)注册了每个服务。但是我遇到了一些问题,
问题:
我浏览了AWS文档和不同的博客,但是我没有得到任何特定的原因来自动将EC2实例从网络负载平衡器目标组中删除,即使没有将其他服务的相同实例从目标组中删除。
解决方案: 现在,最后,我创建了一个云监视警报,如果删除了任何EC2实例,它将触发一封通知电子邮件,还触发lambda函数以再次注册EC2实例。
问题:
任何人都可以在上述问题上寻求帮助,或者是否有替代最佳解决方案来实现上述用例。
谢谢
答案 0 :(得分:0)
您将使用register_targets()
:
将指定的目标注册到指定的目标组。
如果目标是EC2实例,则在注册时它必须处于运行状态。
response = client.register_targets(
TargetGroupArn='arn:aws:elasticloadbalancing:ap-southeast-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
Targets=[
{
'Id': 'i-abcd1234',
'Port': 80
},
]
)
答案 1 :(得分:0)
这是完整的代码,您可以在其中使用目标组中的注册目标。下面的代码在python 2.7下运行
import boto3
client = boto3.client('elbv2')
def lambda_handler(event, context):
body = {
"message": "Go Serverless v1.0! Your function executed successfully!",
"input": event
}
response = client.register_targets(
TargetGroupArn='<add_your_target_ARN_here>',
Targets=[
{
'Id': 'inctance_ID',
'Port': <port>
},
]
)
return response