Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplos de definiciones de tarea
Esta sección ofrece algunos ejemplos de definición de tarea que puede utilizar para empezar a crear sus propias definiciones de tareas. Para obtener más información, consulte Parámetros de definición de tarea y Creación de una definición de tarea.
Para ver ejemplos adicionales de definición de tareas, consulte AWS Definiciones de tareas de ejemplo
Temas
Ejemplo: Servidor web
A continuación, se muestra un ejemplo de definición de tarea utilizando el tipo de lanzamiento Fargate que configura un servidor web:
{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": [ "sh", "-c" ], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ] } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::
012345678910
:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ] }
Ejemplo: splunk
controlador de registro
En el ejemplo siguiente se muestra cómo utilizar el controlador de registros splunk
en una definición de tarea que envía los registros a un servicio remoto. El parámetro
de token Splunk se especifica como una opción secreta, ya que puede tratarse como
información confidencial. Para obtener más información, consulte Especificación de información confidencial.
"containerDefinitions": [{ "logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "
https://cloud.splunk.com:8080
", "tag": "tag_name
", }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:splunk-token-KnrBkD
" }],
Ejemplo: fluentd
controlador de registro
En el ejemplo siguiente se muestra cómo utilizar el controlador de registros fluentd
en una definición de tarea que envía los registros a un servicio remoto. El valor
fluentd-address
se especifica como una opción secreta, ya que puede ser tratado como información
confidencial. Para obtener más información, consulte Especificación de información confidencial.
"containerDefinitions": [{ "logConfiguration": { "logDriver": "fluentd", "options": { "tag": "
fluentd demo
" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:fluentd-address-KnrBkD
" }] }, "entryPoint": [], "portMappings": [{ "hostPort": 80, "protocol": "tcp", "containerPort": 80 }, { "hostPort": 24224, "protocol": "tcp", "containerPort": 24224 }] }],
Ejemplo: gelf
controlador de registro
En el ejemplo siguiente se muestra cómo utilizar el controlador de registros gelf
en una definición de tarea que envía los registros a un host remoto que ejecuta Logstash
que toma los registros de Gelf como entrada. Para obtener más información, consulte
logConfiguration.
"containerDefinitions": [{ "logConfiguration": { "logDriver": "gelf", "options": { "gelf-address": "
udp://logstash-service-address:5000
", "tag": "gelf task demo
" } }, "entryPoint": [], "portMappings": [{ "hostPort": 5000, "protocol": "udp", "containerPort": 5000 }, { "hostPort": 5000, "protocol": "tcp", "containerPort": 5000 } ] }],
Ejemplo: Amazon ECR definición de imagen y tarea IAM función
El ejemplo siguiente utiliza una imagen de Amazon ECR denominada aws-nodejs-sample
con la etiqueta v1
del registro 123456789012.dkr.ecr.us-west-2.amazonaws.com
. El contenedor de esta tarea hereda los permisos de IAM del rol arn:aws:iam::123456789012:role/AmazonECSTaskS3BucketRole
. Para obtener más información, consulte Roles de IAM para las tareas.
{ "containerDefinitions": [ { "name": "sample-app", "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/aws-nodejs-sample:v1", "memory": 200, "cpu": 10, "essential": true } ], "family": "example_task_3", "taskRoleArn": "arn:aws:iam::123456789012:role/AmazonECSTaskS3BucketRole" }
Ejemplo: Punto de entrada con comando
El ejemplo siguiente muestra la sintaxis de un contenedor de Docker que utiliza un
punto de entrada y un argumento de comando. Este contenedor realiza ping a google.com
cuatro veces y, a continuación, se cierra.
{ "containerDefinitions": [ { "memory": 32, "essential": true, "entryPoint": [ "ping" ], "name": "alpine_ping", "readonlyRootFilesystem": true, "image": "alpine:3.4", "command": [ "-c", "4", "google.com" ], "cpu": 16 } ], "family": "example_task_2" }
Ejemplo: Dependencia del contenedor
En este ejemplo, se muestra la sintaxis de una definición de tareas con varios contenedores
donde se especifica la dependencia de contenedores. En la siguiente definición de
tarea, el contenedor envoy
debe llegar a un estado de funcionamiento correcto, determinado por los parámetros
necesarios de comprobación de estado del contenedor, antes de que el contenedor app
se inicie. Para obtener más información, consulte Dependencia de contenedor.
{ "family": "
appmesh-gateway
", "proxyConfiguration":{ "type": "APPMESH", "containerName": "envoy", "properties": [ { "name": "IgnoredUID", "value": "1337" }, { "name": "ProxyIngressPort", "value": "15000" }, { "name": "ProxyEgressPort", "value": "15001" }, { "name": "AppPorts", "value": "9080
" }, { "name": "EgressIgnoredIPs", "value": "169.254.170.2,169.254.169.254" } ] }, "containerDefinitions": [ { "name": "app", "image": "application_image
", "portMappings": [ { "containerPort":9080
, "hostPort":9080
, "protocol": "tcp" } ], "essential": true, "dependsOn": [ { "containerName": "envoy", "condition": "HEALTHY" } ] }, { "name": "envoy", "image": "840364872350.dkr.ecr.region-code
.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod", "essential": true, "environment": [ { "name": "APPMESH_VIRTUAL_NODE_NAME", "value": "mesh/meshName
/virtualNode/virtualNodeName
" }, { "name": "ENVOY_LOG_LEVEL", "value": "info" } ], "healthCheck": { "command": [ "CMD-SHELL", "echo hello" ], "interval": 5, "timeout": 2, "retries": 3 } } ], "executionRoleArn": "arn:aws:iam::123456789012
:role/ecsTaskExecutionRole
", "networkMode": "awsvpc" }