Share Your AWS re:Post Experience - Quick 3 Question Survey and Earn a re:Post Badge
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey
Wie erhalte ich die ID und die IP-Adresse einer Amazon-EC2-Instance für einen AWS-Batch-Job?
Ich möchte die ID und IP-Adresse einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance für einen AWS-Batch-Job abrufen. Wo finde ich diese Informationen?
Kurzbeschreibung
Wenn Sie Informationen zur Amazon-EC2-Instance eines AWS-Batch-Jobs abrufen möchten, rufen Sie als Erstes die Container-Instance-ID von Amazon Elastic Container Service (Amazon ECS) des Jobs ab. Verwenden Sie dann die Container-Instance-ID, um den zugehörigen Clusternamen von Amazon ECS und die zugehörige Instance-ID von Amazon EC2 abzurufen. Die Instance-ID von Amazon EC2 kann zum Abrufen der IP-Adresse der Instance verwendet werden.
**Hinweis:**Amazon-ECS-Ressourcen, die nach dem 1. April 2021 erstellt wurden, verwenden ein neues langes Amazon Resource Name (ARN)-Format, das jetzt den Clusternamen von ECS enthält. In diesem Artikel wird sowohl die Verwendung des neuen ARN-Formats als auch die Verwendung des alten ARN-Formats erläutert. Weitere Informationen finden Sie unter ARNs und IDs im Amazon ECS Developer Guide.
Behebung
**Hinweis:**Sollten beim Ausführen von Befehlen der AWS Command Line Interface (AWS CLI) Fehler auftreten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.
Rufen Sie die Amazon ECS-Container-Instance-ID, den Clusternamen und die Amazon EC2-Instance-ID des AWS Batch-Jobs ab
Neues ARN-Format
Führen Sie das folgende Bash-Skript aus, um für Ihren AWS-Batch-Job die Container-Instance-ID von Amazon ECS, den Clusternamen und die Instance-ID von Amazon EC2 abzurufen:
**Wichtig:**Ersetzen Sie <your_job_ID> durch die Job-ID Ihres AWS-Batch-Jobs.
#!/bin/bash JOB_ID=<your_job_ID> CONTAINER_INSTANCE_ARN=$(aws batch describe-jobs --jobs "$JOB_ID" --query 'jobs[0].container.containerInstanceArn' --output text); TMP=${CONTAINER_INSTANCE_ARN#*/} CLUSTER_NAME=${TMP%/*} EC2_ID=$(aws ecs describe-container-instances --container-instances "$CONTAINER_INSTANCE_ARN" --cluster "$CLUSTER_NAME" --query "containerInstances[0].ec2InstanceId" --output text) echo ${EC2_ID}
Altes ARN-Format
1.Führen Sie den folgenden Befehl vom Typ describe-jobs aus, um für Ihren AWS-Batch-Job die Container-Instance-ID von Amazon ECS abzurufen:
$ aws batch describe-jobs --jobs <your_job_ID> --query 'jobs[0].container.containerInstanceArn' --output text
In der Ausgabe wird ein Wert für den Container-Instance-ARN zurückgegeben, der die Container-Instance-ID enthält.
2.Gehen Sie wie folgt vor, um den Amazon-ECS-Cluster zu ermitteln, der Ihrer AWS-Batch-Rechenumgebung entspricht:
Öffnen Sie die Amazon-ECS-Konsole.
Wählen Sie Clusters aus.
Wählen Sie die Registerkarte Services aus.
Suchen Sie dann nach dem Clusternamen. Dieser wird im folgenden Format angezeigt: ComputeEnvironmentName_Batch_RandomStringOfCharacters
3.Führen Sie den folgenden Befehl vom Typ describe-container-instances aus, um die zugeordnete Instance-ID von Amazon EC2 für den Cluster abzurufen:
**Wichtig:**Ersetzen Sie <Your_Cluster_Name> durch den Namen Ihres Amazon-ECS-Clusters. Ersetzen Sie <Your_Container_Instance_ID> durch die Container-Instance-ID von Amazon ECS für Ihren AWS-Batch-Job.
$ aws ecs describe-container-instances --cluster <Your_Cluster_Name> --container-instances <Your_Container_Instance_ID> --query "containerInstances[0].ec2InstanceId"
In der Ausgabe wird die dem Job zugeordnete Instance-ID von Amazon EC2 zurückgegeben.
Verwenden Sie die Amazon EC2-Instance-ID, um die IP-Adresse der Instance abzurufen
Sie können entweder die Amazon EC2-Konsole oder die AWS-CLI verwenden, um die IP-Adresse einer Amazon EC2-Instance abzurufen.
Amazon-EC2-Konsole
1.Öffnen Sie die Amazon-EC2-Konsole.
2.Wählen Sie Running instances aus.
3.Suchen Sie in der Spalte Instance ID nach der Instance-ID Ihrer Amazon-EC2-Instance.
4.Sehen Sie sich in der Zeile mit Ihrer Instance-ID die Spalte IPv4 Public IP address an. Der aufgeführte Wert ist die IP-Adresse der Amazon EC2-Instance.
AWS CLI
Führen Sie den folgenden Befehl vom Typ describe-instances aus:
**Wichtig:**Ersetzen Sie <EC2_ID> durch die Instance-ID von Amazon EC2.
aws ec2 describe-instances --instance-ids <EC2_ID> --query 'Reservations[0].Instances[0].{"PrivateIP":PrivateIpAddress,"PublicIP":PublicIpAddress}'
Abrufen von Instance-Informationen für AWS-Batch-Jobs mit mehreren Knoten
1.Führen Sie den folgenden Befehl vom Typ describe-jobs für einen einzelnen untergeordneten Job aus, um die Container-Instance-ID für einen untergeordneten Job abzurufen:
**Wichtig:**Ersetzen Sie Your_Job_ID durch die Job-ID von AWS Batch.
$ aws batch describe-jobs --jobs Your_Job_ID#1 --query 'jobs[0].container.containerInstanceArn' --output text
**Wichtig:**Da sich jeder untergeordnete Job auf einem individuellen Knoten befindet, verfügt der übergeordnete Job über keine Informationen zur Container-Instance. Verwenden Sie für untergeordnete Jobs die Knotennotation, um den Index des untergeordneten Jobs an die Job-ID anzuhängen. In diesem Beispiel für den Befehl describe-jobs wird mit #1 auf den ersten Knoten des Jobs zugegriffen. Durch Hinzufügen von #2 wird auf den zweiten Knoten zugegriffen und so weiter. Weitere Informationen finden Sie unter Multi-node parallel jobs.
2.Führen Sie den folgenden Befehl vom Typ describe-container-instances aus, um die zugeordnete Instance-ID von Amazon EC2 abzurufen:
**Wichtig:**Ersetzen Sie Your_Cluster_Name durch den Namen Ihres Amazon-ECS-Clusters. Ersetzen Sie Your_Container_Instance_ID durch die Container-Instance-ID von Amazon ECS für Ihren AWS-Batch-Job.
$ aws ecs describe-container-instances --cluster Your_Cluster_Name --container-instances Your_Container_Instance_ID --query "containerInstances[0].ec2InstanceId"

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- Wie finde ich die Abfrage-ID für eine Suchabfrage, damit ich Probleme in Amazon Kendra beheben kann?AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 8 Monaten