如何获取 AWS Batch 作业的 Amazon EC2 实例的 ID 或 IP 地址?

上次更新时间:2020 年 2 月 25 日

我想获取 AWS Batch 作业的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的 ID 或 IP 地址。

简要描述

要获取有关在 AWS Batch 作业上运行的 Amazon EC2 实例的信息,您必须首先获取该作业的容器 ID。然后,您可以使用容器实例 ID 来获取 EC2 实例 ID。最后,您可以使用 EC2 实例 ID 获取该实例的 IP 地址。

解决方法

获取您的 AWS Batch 作业的容器实例 ID

1.    要获取您的 AWS Batch 作业的容器实例 ID,请运行以下 describe-jobs 命令:

$ aws batch describe-jobs --jobs YourJobID

输出结果描述了该作业的所有属性和参数,其中包括容器实例 ID。containerInstanceArn 属性显示了您的容器实例 ID。请参阅以下示例:

{
    "jobs": [
        {
            "status": "SUCCEEDED",
            "container": {
                "mountPoints": [],
                "taskArn": "arn:aws:ecs:us-east-1:1234567890:task/8fde8ebf-c5d8-40ca-8999-b0c2185f577a",
                "logStreamName": "job-definition/default/8fde8ebf-c5d8-40ca-8999-b0c2185f577a",
                "image": "busybox",
                "containerInstanceArn": "arn:aws:ecs:us-east-1:1234567890:container-instance/Your_Container_Instance_ID",
                "environment": [],
                "vcpus": 2,
                "jobRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole",
                "volumes": [],
                "memory": 2000,
                "command": [
                    "echo",
                    "'hello world'"
                ],
            },
}

2.    要查找与您的 AWS Batch 计算环境相对应的 Amazon Elastic Container Service (Amazon ECS) 集群,请打开 Amazon ECS 控制台,然后选择集群

注意:您创建的每个 AWS Batch 计算环境都对应一个 Amazon ECS 集群。

3.    在服务选项卡上,搜索用以下格式显示的集群名称:ComputeEnvironmentName_Batch_RandomStringOfCharacters

获取作业的 EC2 实例 ID

要获取 EC2 实例 ID,请运行 describe-container-instances 命令并传入您在第 1 步中获取的容器实例 ID:

$ aws ecs describe-container-instances --cluster Your_Cluster_Name --container-instances Your_Container_Instance_ID

输出结果显示了 EC2 实例 ID。请参阅以下示例:

CONTAINERINSTANCES          True     arn:aws:ecs:us-east-1:1234567890:container-instance/Your_EC2_Instance_ID           i-0ab1cdefghij23k45    0          1234567890.12           0          ACTIVE 5

获取实例的 IP 地址

获得 EC2 实例 ID 之后,就可以使用该 ID 查找 EC2 实例的 IP 地址。

1.    打开 Amazon EC2 控制台

2.    选择正在运行的实例

3.    在实例 ID 列中,查找您先前检索的实例 ID。

4.    对于在第 3 步中找到的实例,请在 IPv4 公有 IP 地址列中查找其 IP 地址。

获取多节点 AWS Batch 作业的实例信息

要获取子作业的容器实例 ID,请对单个子作业运行以下 describe-jobs 命令:

$ aws batch describe-jobs --jobs Your_Job_ID#1

重要提示:父作业没有有关容器实例的信息,因为每个子作业都在唯一的节点上。对于子作业,请使用节点表示法将子作业的索引附加到作业 ID。在前面的命令中,#1 访问作业的第一个节点,#2 访问作业的第二个节点,依此类推。有关更多信息,请参阅多节点并行作业

要获取 EC2 实例 ID,请运行 describe-container-instances 命令并传入您之前检索到的容器实例 ID:

$ aws ecs describe-container-instances --cluster Your_Cluster_Name --container-instances Your_Container_Instance_ID

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?