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à.
Esempi di definizioni di ECS attività Amazon
È possibile copiare gli esempi e gli snippet per iniziare a creare definizioni di attività personalizzate.
È possibile copiare gli esempi e incollarli quando si utilizza l'JSONopzione Configura tramite nella console. Assicurati di personalizzare gli esempi, ad esempio l'utilizzo del tuo ID account. È possibile includere gli snippet nella definizione dell'attività. JSON Per ulteriori informazioni, consulta Creazione di una definizione di ECS attività Amazon utilizzando la console e Parametri di definizione ECS delle attività di Amazon.
Per altri esempi di definizione delle attività, consulta AWS Esempi di definizioni delle attività
Argomenti
Server Web
Di seguito è riportato un esempio di definizione di attività usando container Linux sul tipo di avvio Fargate che configura un server 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", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "requiresCompatibilities": [ "FARGATE" ] }
Di seguito è riportato un esempio di definizione di attività usando container Windows sul tipo di avvio Fargate che configura un server Web:
{ "containerDefinitions": [ { "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<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>'; C:\\ServiceMonitor.exe w3svc"], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"}, "requiresCompatibilities": ["FARGATE"] }
splunk
driver di registro
Il frammento di codice seguente mostra come utilizzare il driver di log splunk
in una definizione di attività che invia i log a un servizio remoto. Il parametro di token Splunk è specificato come opzione segreta perché può essere trattato come dati sensibili. Per ulteriori informazioni, consulta Trasferisci dati sensibili a un ECS contenitore Amazon.
"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
" }],
fluentd
driver di registro
Il frammento di codice seguente mostra come utilizzare il driver di log fluentd
in una definizione di attività che invia i log a un servizio remoto. Il valore fluentd-address
è specificato come opzione segreta perché può essere trattato come dati sensibili. Per ulteriori informazioni, consulta Trasferisci dati sensibili a un ECS contenitore Amazon.
"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 }] }],
gelf
driver di registro
Il frammento di codice seguente mostra come utilizzare il driver di log gelf
in una definizione di attività che invia i log a un host remoto. Tale host esegue Logstash e accetta i log di Gelf come input. Per ulteriori informazioni, consulta 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 } ] }],
Carichi di lavoro su istanze esterne
Quando registri una definizione di ECS attività Amazon, utilizza il requiresCompatibilities
parametro e specifica EXTERNAL
quale verifica che la definizione dell'attività sia compatibile per l'uso durante l'esecuzione di ECS carichi di lavoro Amazon su istanze esterne. Se utilizzi la console per registrare una definizione di attività, devi utilizzare l'editor. JSON Per ulteriori informazioni, consulta Creazione di una definizione di ECS attività Amazon utilizzando la console.
Importante
Se le tue attività richiedono un IAM ruolo di esecuzione dell'attività, assicurati che sia specificato nella definizione dell'attività.
Quando distribuisci il tuo carico di lavoro, utilizza il tipo di avvio EXTERNAL
durante la creazione del servizio o l'esecuzione del processo autonomo.
Di seguito è riportata una definizione di tabella di esempio.
IAMRuolo di definizione ECR dell'immagine e dell'attività di Amazon
Il seguente frammento utilizza ECR un'immagine Amazon chiamata aws-nodejs-sample
con il v1
tag dal 123456789012.dkr.ecr.us-west-2.amazonaws.com
registro. Il contenitore di questa attività eredita le IAM autorizzazioni dal ruolo. arn:aws:iam::123456789012:role/AmazonECSTaskS3BucketRole
Per ulteriori informazioni, consulta IAMRuolo ECS dell'attività di Amazon.
{ "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" }
Punto di ingresso con comando
Il frammento di codice seguente mostra la sintassi per un container Docker che utilizza un punto di ingresso e un argomento del comando. Questo container esegue il ping di google.com
quattro volte e quindi si chiude.
{ "containerDefinitions": [ { "memory": 32, "essential": true, "entryPoint": ["ping"], "name": "alpine_ping", "readonlyRootFilesystem": true, "image": "alpine:3.4", "command": [ "-c", "4", "example.com" ], "cpu": 16 } ], "family": "example_task_2" }
Dipendenze per i container
Questo frammento di codice mostra la sintassi di una definizione di attività con più container in cui è specificata la dipendenza per il container. Nella seguente definizione di attività, il container envoy
deve raggiungere un stato di integrità, determinato dai parametri richiesti per il controllo dell'integrità, prima che il container app
venga avviato. Per ulteriori informazioni, consulta Dipendenze per i container.
{ "family": "
appmesh-gateway
", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "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" }
Definizioni di attività di esempio di Windows
Di seguito è riportato un esempio di definizione di attività per aiutarti a iniziare a usare i contenitori Windows su AmazonECS.
Esempio di applicazione Amazon ECS Console per Windows
La seguente definizione di attività è l'applicazione di esempio della ECS console Amazon prodotta nella procedura guidata di prima esecuzione per AmazonECS; è stata convertita per utilizzare l'immagine del contenitore microsoft/iis
Windows.
{ "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "mcr.microsoft.com/windows/servercore/iis", "cpu": 1024, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<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>'; C:\\ServiceMonitor.exe w3svc"], "portMappings": [ { "protocol": "tcp", "containerPort": 80 } ], "memory": 1024, "essential": true } ], "networkMode": "awsvpc", "memory": "1024", "cpu": "1024" }