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”.

Inicie uma nova máquina de AWS Step Functions estado a partir de uma execução em execução

Modo de foco
Inicie uma nova máquina de AWS Step Functions estado a partir de uma execução em execução - 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á.

O Step Functions se integra à sua própria API como uma integração de serviço. Saiba como usar o Step Functions para iniciar uma nova execução de uma máquina de estado diretamente do estado da tarefa de uma execução em andamento. Ao criar novos fluxos de trabalho, use execuções de fluxo de trabalho aninhado para reduzir a complexidade dos fluxos de trabalho principais e reutilizar processos comuns.

Principais recursos da integração otimizada ao Step Functions

Observe que não há otimizações para os padrões de integração Resposta de solicitação ou Aguardar um retorno de chamada com um token de tarefa.

Para obter mais informações, consulte:

Step Functions otimizadas APIs

Exemplos de fluxo de trabalho

Veja a seguir um estado Task que inicia uma execução de outra máquina de estado e aguarda até que ela seja concluída.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Veja a seguir um estado Task que inicia uma execução de outra máquina de estado.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Veja a seguir um estado Task que implementa o padrão de integração do serviço retorno de chamada.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Para associar uma execução de fluxo de trabalho aninhada à execução principal que a iniciou, passe um parâmetro com nome especial que inclua o ID de execução extraído do objeto Context. Ao iniciar uma execução aninhada, use um parâmetro chamado AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID. Passe o ID de execução anexando .$ ao nome do parâmetro e referenciando o ID no objeto Context com. $$.Execution.Id Para obter mais informações, consulte Acessando o objeto Context.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync", "Parameters":{ "Input":{ "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Máquinas de estado aninhadas retornam o seguinte:

Recurso Saída
startExecution.sync String
startExecution.sync:2 JSON

Ambos aguardarão a conclusão da máquina de estado aninhado, mas eles retornam formatos diferentes de Output. Por exemplo, se você criar uma função do Lambda que retorna o objeto { "MyKey": "MyValue" }, você obteria as seguintes respostas:

Para startExecution.sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

Para startExecution.sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

Configurando permissões do IAM para máquinas de estado aninhado

Uma máquina de estado principal determina se uma máquina de estado secundária concluiu a execução usando pesquisas e eventos. A enquete requer permissão, states:DescribeExecution enquanto os eventos enviados EventBridge para o Step Functions exigem permissões para events:PutTargetsevents:PutRule, e. events:DescribeRule Se essas permissões estiverem ausentes em seu perfil do IAM, pode haver um atraso até que uma máquina de estado principal tome conhecimento da conclusão da execução da máquina de estado secundária.

Para uma máquina de estado que chama StartExecution para uma única execução de fluxo de trabalho aninhado, use uma política do IAM que limita as permissões a essa máquina de estado.

Políticas do IAM para chamar fluxos de trabalho aninhados do Step Functions

Para uma máquina de estado que chama StartExecution para uma única execução de fluxo de trabalho aninhado, use uma política do IAM que limita as permissões a essa máquina de estado.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

Para obter mais informações, consulte:

Synchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
Asynchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
Tipos de ARN necessários

Na política para Synchronous, observe que states:StartExecution requer um ARN de máquina de estado, states:DescribeExecution enquanto que exige um ARN states:StopExecution de execução.

Se você combinar as três ações por engano, o JSON será válido, mas a política do IAM estará incorreta. Uma política incorreta pode causar fluxos de trabalho paralisados e/ou problemas de acesso durante a execução do fluxo de trabalho.

Para obter mais informações sobre execuções de fluxos de trabalho aninhados, consulte: Iniciar execuções de fluxo de trabalho usando um estado de tarefa no Step Functions.

Nesta página

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