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à.
Esegui attività su Amazon ECS o Fargate con Step Functions
Scopri come integrare Step Functions con Amazon ECS o Fargate per eseguire e gestire le attività. In AmazonECS, un'attività è l'unità di calcolo fondamentale. Le attività sono definite da una definizione di attività che specifica come deve essere eseguito un contenitore Docker, inclusa l'immagine del contenitore, i limiti di memoria, CPU la configurazione di rete e altri parametri. Questa pagina elenca le ECS API azioni Amazon disponibili e fornisce istruzioni su come trasferire dati a un'ECSattività Amazon utilizzando Step Functions.
Per saperne di più sull'integrazione con AWS servizi in Step Functions, vedere Integrazione dei servizi e. Passaggio di parametri a un servizio API in Step Functions
Caratteristiche principali dell'integrazione ottimizzata tra Amazon e ECS Fargate
-
Il modello di Esegui un processo (.sync) integrazione è supportato.
ecs:runTask
può restituire una risposta HTTP 200, ma ha unFailures
campo non vuoto come segue:Richiesta di risposta: restituisci la risposta e non fallire l'operazione. Ciò equivale a nessuna ottimizzazione.
Esegui un Job o Task Token: se viene rilevato un
Failures
campo non vuoto, l'operazione fallisce con unAmazonECS.Unknown
errore.
Amazon ECS /Fargate supportati APIs
-
RunTask
avvia un nuovo task utilizzando la definizione di task specificata.
Parametri in Step Functions sono espressi in PascalCase
Anche se il servizio nativo API è attivocamelCase, ad esempio l'APIazionestartSyncExecution
, si specificano i parametri in PascalCase, ad esempio:StateMachineArn
.
Trasferimento di dati a un Amazon ECS Task
Per saperne di più sull'integrazione con AWS servizi in Step Functions, vedere Integrazione dei servizi e. Passaggio di parametri a un servizio API in Step Functions
Puoi usarlo overrides
per sovrascrivere il comando predefinito per un contenitore e passare l'input alle tue ECS attività Amazon. Per informazioni, consulta ContainerOverride
. Nell'esempio, abbiamo passato JsonPath valori Task
dall'input allo Task
stato.
Quanto segue include uno Task
stato che esegue un'ECSattività Amazon e attende che venga completata.
{
"StartAt": "Run an ECS Task and wait for it to complete",
"States": {
"Run an ECS Task and wait for it to complete": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"Cluster": "cluster-arn
",
"TaskDefinition": "job-id
",
"Overrides": {
"ContainerOverrides": [
{
"Name": "container-name
",
"Command.$": "$.commands"
}
]
}
},
"End": true
}
}
}
La riga "Command.$": "$.commands"
in ContainerOverrides
passa i comandi dall'input di stato al container.
Per l'esempio precedente, ciascuno dei comandi verrà trasferito come sostituzione di container se l'input per l'esecuzione è il seguente.
{
"commands": [
"test command 1",
"test command 2",
"test command 3"
]
}
Quanto segue include uno Task
stato che esegue un'ECSattività Amazon e quindi attende la restituzione del token dell'attività. Per informazioni, consulta Attendi una richiamata con Task Token.
{
"StartAt":"Manage ECS task",
"States":{
"Manage ECS task":{
"Type":"Task",
"Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken",
"Parameters":{
"LaunchType":"FARGATE",
"Cluster":"cluster-arn
",
"TaskDefinition":"job-id
",
"Overrides":{
"ContainerOverrides":[
{
"Name":"container-name
",
"Environment":[
{
"Name":"TASK_TOKEN_ENV_VARIABLE",
"Value.$":"$$.Task.Token"
}
]
}
]
}
},
"End":true
}
}
}
IAMpolitiche per le chiamate ad AmazonECS/AWS Fargate
I seguenti modelli di esempio mostrano come AWS Step Functions genera IAM politiche basate sulle risorse nella definizione della macchina a stati. Per ulteriori informazioni, consulta In che modo Step Functions genera IAM politiche per servizi integrati e Scopri i modelli di integrazione dei servizi in Step Functions.
Poiché il valore di non TaskId
è noto fino all'invio dell'attività, Step Functions crea una "Resource": "*"
politica più privilegiata.
Nota
Puoi interrompere solo le attività di Amazon Elastic Container Service (AmazonECS) avviate da Step Functions, nonostante la "*"
IAM politica.
Se le tue ECS attività Amazon pianificate richiedono l'uso di un ruolo di esecuzione di attività, un ruolo di attività o un'eccezione di ruolo dell'attività, devi aggiungere iam:PassRole
le autorizzazioni per ogni ruolo di esecuzione dell'attività, ruolo dell'attività o sovrascrittura del ruolo dell'attività al IAM ruolo CloudWatch Events dell'entità chiamante, che in questo caso è Step Functions.