[英]AWS JAVA SDK get public IP of Task
我有一个小问题。 我正在通过JAVA SDK启动任务(泊坞窗容器)。 这很好。
但是现在我想通过SDK来获取公共IP,但不知道如何使用。
这是到目前为止我现有的代码。
RunTaskRequest request = new RunTaskRequest()
.withCluster("JuiceShop")
.withTaskDefinition("startJuiceShop:1")
.withNetworkConfiguration(networkConfiguration)
.withLaunchType("FARGATE");
RunTaskResult response = client.runTask(request);
响应包含容器,但尚未连接网络设备。 是否有一种简单的方法来获取公共IPV4?
您将需要进行多个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”,“ details”:[{“ name”:“ subnetId “,” value“:” subnet-xxxxx“},{” name“:” networkInterfaceId“,” value“:” eni-e5aa89a3“},{” name“:” macAddress“,” value“:” xxxxx“} ,{“ name”:“ privateIPv4Address”,“ value”:“ 172.31.94.215”}]}],
范例-
AmazonEC2 client = AmazonEC2ClientBuilder.standard().build();
DescribeNetworkInterfacesRequest request = new DescribeNetworkInterfacesRequest().withNetworkInterfaceIds("eni-e5aa89a3");
DescribeNetworkInterfacesResult response = client.describeNetworkInterfaces(request);
{“ NetworkInterfaces”:[{“ Association”:{“ IpOwnerId”:“ amazon”,“ PublicDnsName”:“ ec2-52-xx-xx-xx.compute-1.amazonaws.com”,“ PublicIp”:“ 52 .xx.xx.xx“}]}
任务元数据端点将使您能够获取有关容器的网络信息。 如果要附加EIP,则必须使用容器中的IPv4才能通过SDK查找EIP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.