如何使用元数据端点或 java sdk 获取我的 FARGATE ECS 任务的 Public IP?
How can I get Public IP of my FARGATE ECS task with metadata endpoint or java sdk?
我想在容器启动后获取我的 fargate ECS 任务的 public IP。
我在请求时获得 IPv4Addresses http://169.254.170.2/v2/metadata/ 但我没有获得 public 任务 IP。
当我使用 RunTaskResult 的 runTask(request) 方法时,我再次没有从 RunTaskResult 获得 public IP。
有没有办法获取我的 fargate 任务的 public IP,例如 http://169.254.169.254/latest/meta-data/public-hostname(对于 EC2)?
我解决了我的问题 DescribeNetworkInterfacesRequest.I 使用 curl http://169.254.170.2/v2/metadata/ 获取容器的私有 IP,然后 运行 此代码。
AmazonEC2 ec2AsyncClient= AmazonEC2ClientBuilder.standard().withCredentials(new
AWSStaticCredentialsProvider(credentials)).build();
DescribeNetworkInterfacesRequest request = new DescribeNetworkInterfacesRequest();
request.withFilters(new Filter().withName("private-ip-address").withValues("my-container-private-Ip"));
DescribeNetworkInterfacesResult result = ec2AsyncClient.describeNetworkInterfaces(request);
String publicIP = result.getNetworkInterfaces().get(0).getAssociation().getPublicDnsName();
我想在容器启动后获取我的 fargate ECS 任务的 public IP。 我在请求时获得 IPv4Addresses http://169.254.170.2/v2/metadata/ 但我没有获得 public 任务 IP。
当我使用 RunTaskResult 的 runTask(request) 方法时,我再次没有从 RunTaskResult 获得 public IP。
有没有办法获取我的 fargate 任务的 public IP,例如 http://169.254.169.254/latest/meta-data/public-hostname(对于 EC2)?
我解决了我的问题 DescribeNetworkInterfacesRequest.I 使用 curl http://169.254.170.2/v2/metadata/ 获取容器的私有 IP,然后 运行 此代码。
AmazonEC2 ec2AsyncClient= AmazonEC2ClientBuilder.standard().withCredentials(new
AWSStaticCredentialsProvider(credentials)).build();
DescribeNetworkInterfacesRequest request = new DescribeNetworkInterfacesRequest();
request.withFilters(new Filter().withName("private-ip-address").withValues("my-container-private-Ip"));
DescribeNetworkInterfacesResult result = ec2AsyncClient.describeNetworkInterfaces(request);
String publicIP = result.getNetworkInterfaces().get(0).getAssociation().getPublicDnsName();