AWS不提供直接将相同的IP地址分配给EC2实例和Lambda函数的选项。但可以通过使用VPC(Virtual Private Cloud)和子网配置来实现它。
首先,创建一个VPC并设置其子网CIDR块。然后,在该VPC中创建两个子网 - 一个用于EC2实例,另一个用于Lambda。确保两个子网均使用相同的CIDR块。
接下来,为EC2实例和Lambda函数创建各自的安全组。然后编辑安全组并允许它们之间的所有入站和出站流量。
最后,在子网内分别启动EC2实例和Lambda函数。由于它们都在同一VPC中,并且使用相同的CIDR块,因此它们可以共享相同的IP地址。
以下是一个示例,其中EC2实例和Lambda函数位于同一子网中,并使用相同的安全组。请注意,此示例仅用于演示目的,实际实现可能会有所不同。
import boto3
# create VPC
ec2 = boto3.client('ec2')
vpc = ec2.create_vpc(CidrBlock='10.0.0.0/16')
vpc_id = vpc['Vpc']['VpcId']
# create subnets
subnet1 = ec2.create_subnet(CidrBlock='10.0.1.0/24', VpcId=vpc_id)
subnet2 = ec2.create_subnet(CidrBlock='10.0.1.0/24', VpcId=vpc_id)
# create security groups
sg1 = ec2.create_security_group(GroupName='EC2-SG', Description='EC2 Security Group', VpcId=vpc_id)
sg2 = ec2.create_security_group(GroupName='Lambda-SG', Description='Lambda Security Group', VpcId=vpc_id)
# allow inbound/outbound traffic between security groups
sg1.authorize_ingress(GroupId