首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >instanceId的sourceIP滤波

instanceId的sourceIP滤波
EN

Stack Overflow用户
提问于 2022-04-12 21:40:05
回答 1查看 57关注 0票数 0

我正在构建一个Python,每当一个EC2实例调用它时,它都应该将这个实例包含在一个ELB目标组中。所以我的“逻辑”是,我有来自这个实例的IP,因为头。如果这个IP,我可以识别InstanceID。使用InstanceID,我可以将它添加到目标组中。

代码语言:javascript
复制
import json
import boto3

client = boto3.client('elbv2')
ec2 = boto3.client('ec2')

def lambda_handler(event, context):
        
    internal_IP = {
        'body': event['requestContext']['identity']['sourceIp']
    }

    filters = [{
        'Name': 'private_ip_address', 
        'Values': [internal_IP],
    }]
    result_list = ec2.describe_instances(Filters=filters)
    instid=result_list['Reservations'][0]['Instances'][0]['InstanceId']


    response = client.register_targets(
        TargetGroupArn='arn:aws:elasticloadbalancing:us-west-1:XXXXXXXXXXX',
        Targets=[
            {
                'Id': instid
            },
        ]
    )

问题是我不能在过滤器中使用"internal_IP“作为值。我得到了错误:"'int‘对象是不可订阅的“。我对代码做了很多修改,但没有成功.

当我运行代码时,将返回IP:

代码语言:javascript
复制
def lambda_handler(event, context):
   
    response = {
        'body': event['requestContext']['identity']['sourceIp']
    }
    return response

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2022-04-13 16:46:58

在@jarmod的帮助下(谢谢!)工作守则是:

代码语言:javascript
复制
import json
import boto3

client = boto3.client('elbv2')
ec2 = boto3.client('ec2')

def lambda_handler(event, context):

filters = [{
    'Name': 'private-ip-address', 
    'Values': [event['requestContext']['identity']['sourceIp']]
}]
result_list = ec2.describe_instances(Filters=filters)
instid=result_list['Reservations'][0]['Instances'][0]['InstanceId']


response = client.register_targets(
    TargetGroupArn='arn:aws:elasticloadbalancing:us-west-1:xxx',
    Targets=[
        {
            'Id': instid
##            'Port': 8443,
##            'AvailabilityZone': 'us-west-1'
        },
    ]
)


return {
'statusCode': 200,
'body': json.dumps('Success')
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71849430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档