spl*_*iii 5 java ip amazon-web-services amazon-ecs aws-fargate
我有一个小问题。我正在通过 JAVA SDK 启动一个任务(docker 容器)。这很好用。
但是现在我想通过SDK获取公共IP,不知道如何。
到目前为止,这是我现有的代码。
RunTaskRequest request = new RunTaskRequest()
.withCluster("JuiceShop")
.withTaskDefinition("startJuiceShop:1")
.withNetworkConfiguration(networkConfiguration)
.withLaunchType("FARGATE");
RunTaskResult response = client.runTask(request);
Run Code Online (Sandbox Code Playgroud)
响应包含容器,但尚未连接网络设备。有没有一种简单的方法可以获得公共 IPV4?
您将需要进行多次 AWS API 调用以获取公共 IPv4 地址。以下是步骤。
例子 -
AmazonECS client = AmazonECSClientBuilder.standard().build();
DescribeTasksRequest request = new DescribeTasksRequest().withTasks("c5cba4eb-5dad-405e-96db-71ef8eefe6a8");
DescribeTasksResult response = client.describeTasks(request);
Run Code Online (Sandbox Code Playgroud)
“附件”:[ { “id”:“xxxxx-d02c-4a9d-ae79-xxxxxxx”,“类型”:“ElasticNetworkInterface”,“状态”:“附加”,“详细信息”:[ { “名称”:“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);
Run Code Online (Sandbox Code Playgroud)
{ "NetworkInterfaces": [ { "Association": { "IpOwnerId": "amazon", "PublicDnsName": "ec2-52-xx-xx-xx.compute-1.amazonaws.com", "PublicIp": "52 .xx.xx.xx" } ] }
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |