Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen einer ECS Amazon-Aufgabe für den EC2 Starttyp mit dem AWS CLI
Mithilfe der folgenden Schritte können Sie über die einen Cluster einrichten, eine Aufgabendefinition registrieren, eine Aufgabe ausführen sowie andere allgemeine Szenarien in Amazon ECS umsetzen AWS CLI. Verwenden Sie die neueste Version von AWS CLI. Weitere Informationen zur Aktualisierung auf die neueste Version finden Sie unter Die neueste Version der installieren oder aktualisieren AWS CLI.
Themen
- Voraussetzungen
- Schritt 1: Erstellen eines Clusters
- Schritt 2: Starten Sie eine Instance mit Amazon ECS AMI
- Schritt 3: Auflisten von Container-Instances
- Schritt 4: Beschreiben Ihrer Container-Instance
- Schritt 5: Registrieren einer Aufgabendefinition
- Schritt 6: Auflisten der Aufgabendefinitionen
- Schritt 7: Ausführen einer Task
- Schritt 8: Auflisten der Aufgaben
- Schritt 9: Beschreibung der gerade ausgeführten Aufgabe
Voraussetzungen
In diesem Tutorial wird davon ausgegangen, dass die folgenden Voraussetzungen erfüllt wurden:
-
Die neueste Version von AWS CLI ist installiert und konfiguriert. Weitere Informationen über die Installation oder Aktualisierung Ihres AWS CLI finden Sie unter Installieren oder Aktualisieren von AWS CLI.
-
Die Schritte in Einrichtung für die Verwendung von Amazon ECS wurden ausgeführt.
-
Ihr AWS Benutzer verfügt über die erforderlichen Berechtigungen, die im ECSAmazonas_ FullAccess IAM Richtlinienbeispiel angegeben sind.
-
Sie haben eine VPC Sicherheitsgruppe zur Verwendung erstellt. Weitere Informationen finden Sie unter Erstellen einer Virtual Private Cloud.
-
(Optional) AWS CloudShell ist ein Tool, das Kunden eine Befehlszeile bietet, ohne eine eigene EC2 Instance erstellen zu müssen. Weitere Informationen finden Sie unter Was ist AWS CloudShell? im AWS CloudShell Benutzerhandbuch.
Schritt 1: Erstellen eines Clusters
Standardmäßig erhält Ihr Konto beim Start Ihrer ersten Container-Instance einen Cluster default
.
Anmerkung
Wenn Sie den bereitgestellten Cluster default
verwenden, hat dies den Vorteil, dass Sie in den nachfolgenden Befehlen nicht die Option --cluster
angeben müssen. Wenn Sie Ihren eigenen, nicht standardmäßigen Cluster erstellen, müssen Sie cluster_name
--cluster
für jeden Befehl angeben, den Sie mit diesem Cluster verwenden möchten.cluster_name
Erstellen Sie mit dem folgenden Befehl Ihren eigenen Cluster mit eindeutigem Namen:
aws ecs create-cluster --cluster-name
MyCluster
Ausgabe:
{
"cluster": {
"clusterName": "MyCluster",
"status": "ACTIVE",
"clusterArn": "arn:aws:ecs:region
:aws_account_id
:cluster/MyCluster"
}
}
Schritt 2: Starten Sie eine Instance mit Amazon ECS AMI
In Ihrem Cluster muss eine ECS Amazon-Container-Instance enthalten sein, damit Sie Aufgaben darin ausführen können. Wenn es in Ihrem Cluster keine Container-Instances gibt, beachten Sie die Informationen im Abschnitt Starten einer Amazon ECS Linux-Container-Instance.
Schritt 3: Auflisten von Container-Instances
Innerhalb von wenigen Minuten nach dem Launch Ihrer Container-Instance meldet der ECS Amazon-Agent die Instance bei Ihrem Standard-Cluster an. Die Container-Instances in einem Cluster können mit dem folgenden Befehl aufgelistet werden:
aws ecs list-container-instances --cluster
default
Ausgabe:
{
"containerInstanceArns": [
"arn:aws:ecs:us-east-1:aws_account_id
:container-instance/container_instance_ID
"
]
}
Schritt 4: Beschreiben Ihrer Container-Instance
Nachdem Sie die ARN Oder-ID einer Container-Instance erhalten haben, können Sie den describe-container-instances Befehl verwenden, um wertvolle Informationen über die Instance abzurufen, z. B. verbleibende CPU und registrierte Ressourcen sowie Speicherressourcen.
aws ecs describe-container-instances --cluster
default
--container-instancescontainer_instance_ID
Ausgabe:
{
"failures": [],
"containerInstances": [
{
"status": "ACTIVE",
"registeredResources": [
{
"integerValue": 1024,
"longValue": 0,
"type": "INTEGER",
"name": "CPU",
"doubleValue": 0.0
},
{
"integerValue": 995,
"longValue": 0,
"type": "INTEGER",
"name": "MEMORY",
"doubleValue": 0.0
},
{
"name": "PORTS",
"longValue": 0,
"doubleValue": 0.0,
"stringSetValue": [
"22",
"2376",
"2375",
"51678"
],
"type": "STRINGSET",
"integerValue": 0
},
{
"name": "PORTS_UDP",
"longValue": 0,
"doubleValue": 0.0,
"stringSetValue": [],
"type": "STRINGSET",
"integerValue": 0
}
],
"ec2InstanceId": "instance_id
",
"agentConnected": true,
"containerInstanceArn": "arn:aws:ecs:us-west-2:aws_account_id
:container-instance/container_instance_ID
",
"pendingTasksCount": 0,
"remainingResources": [
{
"integerValue": 1024,
"longValue": 0,
"type": "INTEGER",
"name": "CPU",
"doubleValue": 0.0
},
{
"integerValue": 995,
"longValue": 0,
"type": "INTEGER",
"name": "MEMORY",
"doubleValue": 0.0
},
{
"name": "PORTS",
"longValue": 0,
"doubleValue": 0.0,
"stringSetValue": [
"22",
"2376",
"2375",
"51678"
],
"type": "STRINGSET",
"integerValue": 0
},
{
"name": "PORTS_UDP",
"longValue": 0,
"doubleValue": 0.0,
"stringSetValue": [],
"type": "STRINGSET",
"integerValue": 0
}
],
"runningTasksCount": 0,
"attributes": [
{
"name": "com.amazonaws.ecs.capability.privileged-container"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.17"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.json-file"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.syslog"
}
],
"versionInfo": {
"agentVersion": "1.5.0",
"agentHash": "b197edd",
"dockerVersion": "DockerVersion: 1.7.1"
}
}
]
}
Sie finden die EC2 Amazon-Instance-ID, mit der Sie die Instance überwachen können, auch in der EC2 Amazon-Konsole oder mit dem aws ec2 describe-instances --instance-id
instance_id
Befehl.
Schritt 5: Registrieren einer Aufgabendefinition
Bevor Sie auf Ihrem ECS Cluster eine Aufgabe ausführen können, müssen Sie eine Aufgabendefinition anmelden. Aufgabendefinitionen sind Listen zusammengefasster Container. Im folgenden Beispiel sehen Sie eine einfache Aufgabendefinition, die ein busybox
-Image aus dem Docker-Hub verwendet und sich einfach 360 Sekunden im Ruhezustand befindet. Weitere Informationen zu den verfügbaren Parametern für die Aufgabendefinition finden Sie im Abschnitt ECSAmazon-Aufgabendefinitionen.
{ "containerDefinitions": [ { "name": "sleep", "image": "busybox", "cpu": 10, "command": [ "sleep", "360" ], "memory": 10, "essential": true } ], "family": "sleep360" }
Das obige Beispiel JSON kann auf zwei Arten AWS CLI an die übergeben werden: Sie können die Aufgabendefinition JSON als Datei speichern und sie mit der
Option übergeben. Oder Sie können die Anführungszeichen in der umgehen JSON und die JSON Containerdefinitionen wie im folgenden Beispiel in der Befehlszeile übergeben. Wenn Sie die Containerdefinitionen in der Befehlszeile übergeben möchten, müssen Sie in dem Befehl zusätzlich einen Parameter --cli-input-json
file://path_to_file.json
--family
angeben, damit mehrere Versionen Ihrer Aufgabendefinition miteinander verbunden bleiben.
Um eine JSON Datei für Containerdefinitionen zu verwenden:
aws ecs register-task-definition --cli-input-json
file://$HOME/tasks/sleep360.json
Um eine JSON Zeichenfolge für Containerdefinitionen zu verwenden:
aws ecs register-task-definition --family
sleep360
--container-definitions"[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]"
Der Befehl register-task-definition gibt nach Abschluss der Registrierung eine Beschreibung der Aufgabendefinition zurück.
{
"taskDefinition": {
"volumes": [],
"taskDefinitionArn": "arn:aws:ec2:us-east-1:aws_account_id
:task-definition/sleep360:1",
"containerDefinitions": [
{
"environment": [],
"name": "sleep",
"mountPoints": [],
"image": "busybox",
"cpu": 10,
"portMappings": [],
"command": [
"sleep",
"360"
],
"memory": 10,
"essential": true,
"volumesFrom": []
}
],
"family": "sleep360",
"revision": 1
}
}
Schritt 6: Auflisten der Aufgabendefinitionen
Sie können die Aufgabendefinitionen für Ihr Konto jederzeit mit dem Befehl list-task-definitions auflisten. In der Ausgabe dieses Befehls werden die Werte family
und revision
angezeigt, die Sie beim Aufruf von run-task oder start-task gemeinsam verwenden können.
aws ecs list-task-definitions
Ausgabe:
{
"taskDefinitionArns": [
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/sleep300:1",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/sleep300:2",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/sleep360:1",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/wordpress:3",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/wordpress:4",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/wordpress:5",
"arn:aws:ec2:us-east-1:aws_account_id
:task-definition/wordpress:6"
]
}
Schritt 7: Ausführen einer Task
Nachdem Sie eine Aufgabe für Ihr Konto registriert und eine für Ihren Cluster registrierte Container-Instance gestartet haben, können Sie die registrierte Aufgabe in Ihrem Cluster ausführen. In diesem Beispiel stellen Sie eine einzelne Instance der Aufgabendefinition sleep360:1
in Ihren Standardcluster.
aws ecs run-task --cluster
default
--task-definitionsleep360:1
--count1
Ausgabe:
{
"tasks": [
{
"taskArn": "arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
",
"overrides": {
"containerOverrides": [
{
"name": "sleep"
}
]
},
"lastStatus": "PENDING",
"containerInstanceArn": "arn:aws:ecs:us-east-1:aws_account_id
:container-instance/container_instance_ID
",
"clusterArn": "arn:aws:ecs:us-east-1:aws_account_id
:cluster/default",
"desiredStatus": "RUNNING",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:aws_account_id
:task-definition/sleep360:1",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:aws_account_id
:container/container_ID
",
"taskArn": "arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
",
"lastStatus": "PENDING",
"name": "sleep"
}
]
}
]
}
Schritt 8: Auflisten der Aufgaben
Listen Sie die Aufgaben für Ihren Cluster auf. Die im vorherigen Abschnitt ausgeführte Aufgabe müsste angezeigt werden. Sie können die Aufgaben-ID oder die vollständige IDARN, die von diesem Befehl zurückgegeben wird, verwenden, um die Aufgabe später zu beschreiben.
aws ecs list-tasks --cluster
default
Ausgabe:
{
"taskArns": [
"arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
"
]
}
Schritt 9: Beschreibung der gerade ausgeführten Aufgabe
Beschreiben Sie die Aufgabe und verwenden Sie dazu die zuvor abgerufene Aufgaben-ID, um weitere Informationen über die Aufgabe zu erhalten.
aws ecs describe-tasks --cluster
default
--tasktask_ID
Ausgabe:
{
"failures": [],
"tasks": [
{
"taskArn": "arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
",
"overrides": {
"containerOverrides": [
{
"name": "sleep"
}
]
},
"lastStatus": "RUNNING",
"containerInstanceArn": "arn:aws:ecs:us-east-1:aws_account_id
:container-instance/container_instance_ID
",
"clusterArn": "arn:aws:ecs:us-east-1:aws_account_id
:cluster/default",
"desiredStatus": "RUNNING",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:aws_account_id
:task-definition/sleep360:1",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:aws_account_id
:container/container_ID
",
"taskArn": "arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
",
"lastStatus": "RUNNING",
"name": "sleep",
"networkBindings": []
}
]
}
]
}