我有一个小问题。我正在通过JAVA SDK启动任务(泊坞窗容器)。这很好。
但是现在我想通过SDK来获取公共IP,不知道如何。
这是到目前为止我现有的代码。
RunTaskRequest request = new RunTaskRequest()
.withCluster("JuiceShop")
.withTaskDefinition("startJuiceShop:1")
.withNetworkConfiguration(networkConfiguration)
.withLaunchType("FARGATE");
RunTaskResult response = client.runTask(request);
响应包含容器,但尚未连接网络设备。是否有一种简单的方法来获取公共IPV4?
答案 0 :(得分:3)
您将需要进行多个AWS API调用以获得公共IPv4地址。步骤如下。
示例-
AmazonECS client = AmazonECSClientBuilder.standard().build();
DescribeTasksRequest request = new DescribeTasksRequest().withTasks("c5cba4eb-5dad-405e-96db-71ef8eefe6a8");
DescribeTasksResult response = client.describeTasks(request);
“附件”:[ { “ id”:“ xxxxx-d02c-4a9d-ae79-xxxxxxx”, “ type”:“ ElasticNetworkInterface”, “ status”:“ ATTACHED”, “细节”: [ { “ name”:“ subnetId”, “值”:“ subnet-xxxxx” }, { “ name”:“ networkInterfaceId”, “值”:“ eni-e5aa89a3” }, { “ name”:“ macAddress”, “值”:“ xxxxx” }, { “ name”:“ privateIPv4Address”, “值”:“ 172.31.94.215” } ] } ]
示例-
AmazonEC2 client = AmazonEC2ClientBuilder.standard().build();
DescribeNetworkInterfacesRequest request = new DescribeNetworkInterfacesRequest().withNetworkInterfaceIds("eni-e5aa89a3");
DescribeNetworkInterfacesResult response = client.describeNetworkInterfaces(request);
{ “ NetworkInterfaces”:[ { “协会”:{ “ IpOwnerId”:“ amazon”, “ PublicDnsName”:“ ec2-52-xx-xx-xx.compute-1.amazonaws.com”, “ PublicIp”:“ 52.xx.xx.xx” } ]}
答案 1 :(得分:0)
task metadata endpoint将使您获取有关容器的网络信息。如果要附加EIP,则必须使用容器中的IPv4才能通过SDK查找EIP。