代码之家  ›  专栏  ›  技术社区  ›  tarikfasun

如何使用元数据端点或java sdk获取FARGATE ECS任务的公共IP?

  •  8
  • tarikfasun  · 技术社区  · 6 年前

    我想在容器启动后获取fargate ECS任务的公共IP。 我在请求时获取IPV4地址 http://169.254.170.2/v2/metadata/ 但我没有获得任务的公共IP。

    当我使用RunTaskResult的runTask(request)方法时,我也不会从RunTaskResult获取公共IP。

    有没有办法获得fargate任务的公共IP http://169.254.169.254/latest/meta-data/public-hostname (对于EC2)?

    1 回复  |  直到 6 年前
        1
  •  4
  •   tarikfasun    6 年前

    我用DescribeNetworkInterfacesRequest解决了我的问题。我使用获取容器的私有IP 卷曲 http://169.254.170.2/v2/metadata/ 然后运行此代码。

        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();