Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di un'ECSattività Amazon per il tipo di EC2 lancio con AWS CLI
La procedura seguente illustra come configurare un cluster, registrare una definizione dei processi, eseguire un processo e come eseguire altri scenari comuni in Amazon ECS con la AWS CLI. Usa la versione più recente di AWS CLI. Per ulteriori informazioni sull'aggiornamento all'ultima versione, consulta Installazione o aggiornamento della versione più recente della AWS CLI.
Argomenti
- Prerequisiti
- Fase 1: creare un cluster
- Fase 2: Avvio di un'istanza con Amazon ECS AMI
- Fase 3: Elenca le istanze di container
- Fase 4: Descrivi la tua istanza di container
- Fase 5: Registra una definizione di attività
- Fase 6: Elenca le definizioni di attività
- Fase 7: Esegui un'attività
- Fase 8: Elenca le attività
- Fase 9: Descrivi l'attività in esecuzione
Prerequisiti
Questo tutorial presuppone che siano stati soddisfatti i prerequisiti seguenti:
-
La versione più recente di AWS CLI è installata e configurata. Per ulteriori informazioni sull'installazione o l'aggiornamento di AWS CLI, consulta Installazione o aggiornamento della versione più recente della. AWS CLI
-
Hai completato le fasi descritte in Configura per l'uso di Amazon ECS.
-
AWS L'utente dispone delle autorizzazioni richieste specificate nell'esempio di policy. Amazon ECS _ FullAccess IAM
-
Sono disponibili un gruppo di sicurezza VPC and creato per l'uso. Per ulteriori informazioni, consulta Crea un cloud privato virtuale.
-
(Facoltativo) AWS CloudShell è uno strumento che offre ai clienti una riga di comando senza dover creare la propria EC2 istanza. Per ulteriori informazioni, consulta Cos'è AWS CloudShell? nella Guida AWS CloudShell per l'utente.
Fase 1: creare un cluster
All'avvio della prima istanza di container, di default l'account riceve il cluster default
.
Nota
Utilizzare il cluster default
offre il vantaggio di non dover specificare l'opzione --cluster
nei comandi successivi. Se crei un cluster diverso da quello predefinito, devi specificare ìcluster_name
--cluster
per ogni comando che prevedi di usare con tale cluster.cluster_name
Crea il tuo cluster con un nome univoco con il comando seguente:
aws ecs create-cluster --cluster-name
MyCluster
Output:
{
"cluster": {
"clusterName": "MyCluster",
"status": "ACTIVE",
"clusterArn": "arn:aws:ecs:region
:aws_account_id
:cluster/MyCluster"
}
}
Fase 2: Avvio di un'istanza con Amazon ECS AMI
Devi disporre di un'istanza di ECS container Amazon nel cluster prima di potervi eseguire operazioni. Se non disponi di istanze di container nel cluster, consulta Avvio di un'istanza di container Amazon ECS Linux per ulteriori informazioni.
Fase 3: Elenca le istanze di container
Entro pochi minuti dall'avvio dell'istanza di container, l'ECSagente Amazon registra quest'ultima nel cluster predefinito. Per visualizzare l'elenco delle istanze di container in un cluster, esegui questo comando:
aws ecs list-container-instances --cluster
default
Output:
{
"containerInstanceArns": [
"arn:aws:ecs:us-east-1:aws_account_id
:container-instance/container_instance_ID
"
]
}
Fase 4: Descrivi la tua istanza di container
Dopo aver ottenuto l'ID ARN o di un'istanza del contenitore, puoi utilizzare il describe-container-instances comando per ottenere informazioni preziose sull'istanza, come le risorse rimanenti e registrate CPU e le risorse di memoria.
aws ecs describe-container-instances --cluster
default
--container-instancescontainer_instance_ID
Output:
{
"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"
}
}
]
}
Puoi anche trovare l'ID dell'EC2istanza Amazon che puoi utilizzare per monitorare l'istanza nella EC2 console Amazon o con il aws ec2 describe-instances --instance-id
instance_id
comando.
Fase 5: Registra una definizione di attività
Prima di eseguire un'attività nel ECS cluster, devi registrare una definizione di attività. Le definizioni di attività sono elenchi di container raggruppati. L'esempio seguente illustra una semplice definizione di attività che utilizza un'immagine busybox
da Docker Hub ed entra semplicemente in sospensione per 360 secondi. Per ulteriori informazioni sui parametri disponibili per la definizione di attività, consulta Definizioni dei ECS processi di Amazon.
{ "containerDefinitions": [ { "name": "sleep", "image": "busybox", "cpu": 10, "command": [ "sleep", "360" ], "memory": 10, "essential": true } ], "family": "sleep360" }
L'esempio precedente JSON può essere passato a AWS CLI in due modi: è possibile salvare la definizione dell'attività JSON come file e passarla con l'
opzione. In alternativa, è possibile evitare le virgolette JSON e passare le definizioni dei JSON contenitori sulla riga di comando, come nell'esempio seguente. Se scegli di trasmettere le definizioni del container nella riga di comando, è necessario aggiungere al comando il parametro --cli-input-json
file://path_to_file.json
--family
utilizzato per mantenere la reciproca associazione tra più versioni della definizione di attività.
Per utilizzare un JSON file per le definizioni dei contenitori:
aws ecs register-task-definition --cli-input-json
file://$HOME/tasks/sleep360.json
Per utilizzare una JSON stringa per le definizioni dei contenitori:
aws ecs register-task-definition --family
sleep360
--container-definitions"[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]"
Il comando register-task-definition restituisce una descrizione della definizione di attività una volta completata la registrazione.
{
"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
}
}
Fase 6: Elenca le definizioni di attività
Puoi sempre ottenere un elenco delle definizioni di attività per il tuo account tramite il comando list-task-definitions. Il risultato restituito dal comando mostra i valori family
e revision
che puoi utilizzare insieme nelle chiamate run-task o start-task.
aws ecs list-task-definitions
Output:
{
"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"
]
}
Fase 7: Esegui un'attività
Dopo aver registrato un'attività per il tuo account e aver avviato un'istanza di container registrata nel cluster, puoi eseguire l'attività registrata in tale cluster. In questo esempio, una singola istanza della definizione di attività sleep360:1
viene posizionata nel tuo cluster predefinito.
aws ecs run-task --cluster
default
--task-definitionsleep360:1
--count1
Output:
{
"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"
}
]
}
]
}
Fase 8: Elenca le attività
Ottieni un elenco delle attività per il tuo cluster. Verrà visualizzata l'attività eseguita nella sezione precedente. È possibile prendere l'ID dell'attività o il valore completo ARN restituito da questo comando e utilizzarlo per descrivere l'attività in un secondo momento.
aws ecs list-tasks --cluster
default
Output:
{
"taskArns": [
"arn:aws:ecs:us-east-1:aws_account_id
:task/task_ID
"
]
}
Fase 9: Descrivi l'attività in esecuzione
Per ottenere ulteriori informazioni sulle attività, descrivi l'attività utilizzando l'ID recuperato in precedenza.
aws ecs describe-tasks --cluster
default
--tasktask_ID
Output:
{
"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": []
}
]
}
]
}