Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Realizar tarefas do ECS ou do Fargate com o Step Functions

Modo de foco
Realizar tarefas do ECS ou do Fargate com o Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Saiba como integrar o Step Functions ao Amazon ECS ou ao Fargate para realizar e gerenciar tarefas. No Amazon ECS, uma tarefa é a unidade fundamental da computação. As tarefas têm uma definição que especifica como um contêiner do Docker deve ser executado, como imagem do contêiner, limites de CPU e de memória, configuração de rede e outros parâmetros. Esta página lista as ações de API do Amazon ECS disponíveis e fornece instruções sobre como transmitir dados para uma tarefa do Amazon ECS usando o Step Functions.

Para saber mais sobre a integração com AWS serviços no Step Functions, consulte Integração de produtos da e. Transmitir parâmetros a uma API de serviço no Step Functions

Principais recursos da integração otimizada entre o Amazon ECS e o Fargate
  • O padrão de integração Executar um trabalho (.sync) é compatível.

  • O ecs:runTask pode retornar uma resposta HTTP 200, mas ter um campo Failures não vazio da seguinte forma:

    • Solicitar resposta: retorne a resposta e não falhe na tarefa. Isso é o mesmo que não haver otimização.

    • Executar um trabalho ou um token de tarefa: se um campo Failures não vazio for encontrado, a tarefa falhará com um erro AmazonECS.Unknown.

Amazon ECS/Fargate otimizado APIs

Parâmetros em Step Functions são expressos em PascalCase

Mesmo que a API de serviço nativa esteja no CamelCase, por exemplo, a startSyncExecution ação da API, você especifica parâmetros PascalCase em, como:. StateMachineArn

Como transmitir dados para uma tarefa do Amazon ECS

Para saber mais sobre a integração com AWS serviços no Step Functions, consulte Integração de produtos da e. Transmitir parâmetros a uma API de serviço no Step Functions

É possível usar o comando overrides para substituir o comando padrão de um contêiner e transmitir a entrada para as tarefas do Amazon ECS. Consulte ContainerOverride. No exemplo, usamos JsonPath para passar valores para a Task da entrada para o Task estado.

Veja a seguir um estado Task que executa uma tarefa do Amazon ECS e aguarda até que ela seja concluída.

{ "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 } } }

A linha "Command.$": "$.commands" em ContainerOverrides transmite os comandos da entrada do estado para o contêiner.

Para o exemplo anterior, cada um dos comandos será transmitido como uma substituição de contêiner se a entrada para a execução for a seguinte.

{ "commands": [ "test command 1", "test command 2", "test command 3" ] }

Veja a seguir um estado Task que executa uma tarefa do Amazon ECS e aguarda o retorno do token da tarefa. Consulte Aguardar um retorno de chamada com um token de tarefa.

{ "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 } } }

Políticas do IAM para chamar o Amazon ECS/AWS Fargate

Os modelos de exemplo a seguir mostram como AWS Step Functions gera políticas do IAM com base nos recursos na definição da sua máquina de estado. Para ter mais informações, consulte Como o Step Functions gera políticas do IAM para serviços integrados e Descobrir padrões de integração de serviços no Step Functions.

Uma vez que o valor de TaskId não é conhecido até que a tarefa seja enviada, o Step Functions cria uma política de "Resource": "*" com mais privilégios.

nota

Você só pode interromper tarefas do Amazon Elastic Container Service (Amazon ECS) que foram iniciadas pelo Step Functions, apesar da política do IAM "*".

Run a Job (.sync)

Recursos estáticos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Recursos dinâmicos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }
Request Response and Callback (.waitForTaskToken)

Recursos estáticos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] } ] }

Recursos dinâmicos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": "*" } ] }

Recursos estáticos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Recursos dinâmicos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

Se suas tarefas agendadas do Amazon ECS exigirem o uso de uma função de execução de tarefa, uma função de tarefa ou uma substituição de função de tarefa, você deverá adicionar iam:PassRole permissões para cada função de execução de tarefa, função de tarefa ou substituição de função de tarefa à função CloudWatch Events IAM da entidade chamadora, que neste caso é Step Functions.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.