Comece um novo AWS Step Functions máquina de 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á.

Comece um novo AWS Step Functions máquina de estado a partir de uma execução em execução

O Step Functions se integra à sua própria integração API como serviço. Aprenda a 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 execução. 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 do Optimized Step Functions

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

Para obter mais informações, consulte as informações a seguir.

Step Functions suportadas 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 a execução de um fluxo de trabalho aninhado à execução principal que o iniciou, transmita um parâmetro especialmente nomeado que inclua o ID de execução obtido do objeto de contexto. Ao iniciar uma execução aninhada, use um parâmetro chamado AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID. Transmita o ID de execução anexando .$ ao nome do parâmetro e fazendo referência ao ID no objeto de contexto com $$.Execution.Id. Para obter mais informações, consulte Acessar o objeto de contexto.

{ "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.sincronização: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 IAM permissões 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 sua IAM função, 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 exige StartExecution a execução de um único fluxo de trabalho aninhado, use uma IAM política que limite as permissões para essa máquina de estado.

Para obter mais informações, consulte IAMpermissões para Step Functions.

IAMpolíticas para chamar fluxos de trabalho aninhados de Step Functions

Para uma máquina de estado que exige StartExecution a execução de um único fluxo de trabalho aninhado, use uma IAM política que limite as permissões para 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 as informações a seguir.

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

Para obter mais informações sobre execuções de fluxos de trabalho aninhados, consulte: Inicie execuções de fluxo de trabalho a partir de um estado de tarefa em Step Functions.