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á.
Inicie um fluxo de trabalho dentro de um fluxo de trabalho com Step Functions e Lambda
Este exemplo de projeto demonstra como usar um AWS Step Functions máquina de estado para iniciar outras execuções de máquinas de estado. Para obter informações sobre iniciar execuções de máquinas de estado desde outra máquina de estado, consulte Inicie execuções de fluxo de trabalho a partir de um estado de tarefa em Step Functions.
Etapa 1: Criar a máquina de estado
-
Abra o console do Step Functions
e clique em Criar máquina de estado. -
Digite
Start a workflow within a workflow
na caixa de pesquisa e escolha Iniciar um fluxo de trabalho dentro de um fluxo de trabalho nos resultados da pesquisa que são retornados. -
Escolha Próximo para continuar.
-
Escolha Executar uma demonstração para criar um ready-to-deploy fluxo de trabalho e somente leitura, ou escolha Criar nele para criar uma definição de máquina de estado editável na qual você possa criar e implantar posteriormente.
Este projeto de exemplo implementa os recursos a seguir.
-
Uma máquina de estado adicional. A execução dessa máquina de estado é iniciada por aquela que você executa.
-
Uma função do Lambda de chamada de retorno. Essa função é usada na máquina de estado adicional para implementar o mecanismo de retorno de chamada.
-
Uma AWS Step Functions máquina de estado
-
Relacionado AWS Identity and Access Management (IAM) funções
A imagem a seguir mostra o gráfico do fluxo de trabalho do projeto Iniciar um fluxo de trabalho em um exemplo de fluxo de trabalho:
-
-
Escolha Usar modelo para continuar com a seleção.
As próximas etapas dependem da sua escolha anterior:
-
Execute uma demonstração — Você pode revisar a máquina de estado antes de criar um projeto somente para leitura com recursos implantados pelo AWS CloudFormation para o seu Conta da AWS.
Você pode visualizar a definição da máquina de estado e, quando estiver pronto, escolher Implantar e executar para implantar o projeto e criar os recursos.
A implantação pode levar até 10 minutos para criar recursos e permissões. Você pode usar o link Stack ID para monitorar o progresso no AWS CloudFormation.
Após a conclusão da implantação, você deverá ver sua nova máquina de estado no console.
-
Desenvolva com base nisso — você pode revisar e editar a definição do fluxo de trabalho. Talvez seja necessário definir valores para espaços reservados no projeto de amostra antes de tentar executar seu fluxo de trabalho personalizado.
nota
Cobranças padrão podem ser aplicadas aos serviços implantados em sua conta.
Etapa 2: Executar a máquina de estado
-
Na página Máquinas de estado, escolha seu projeto de exemplo.
-
Na página do projeto de exemplo, escolha Iniciar execução.
-
Na caixa de diálogo Iniciar execução, faça o seguinte:
-
(Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.
ASCIINão-nomes e registro
Step Functions aceita nomes para máquinas de estado, execuções, atividades e rótulos que não contenham ASCII caracteres. Como esses caracteres não funcionarão com a Amazon CloudWatch, recomendamos usar somente ASCII caracteres para que você possa acompanhar as métricas CloudWatch.
-
(Opcional) Na caixa Entrada, insira os valores de entrada comoJSON. Você pode pular essa etapa se estiver executando uma demonstração.
-
Selecione Iniciar execução.
O console Step Functions direcionará você para uma página de detalhes da execução, na qual você pode escolher estados na visualização do gráfico para explorar informações relacionadas no Detalhes da etapa painel.
-
Exemplo de código da máquina de estado
A máquina de estado neste projeto de amostra integra outra máquina de estado e AWS Lambda passando parâmetros diretamente para esses recursos.
Navegue por esse exemplo de máquina de estado para ver como o Step Functions chama a StartExecution
API ação para a outra máquina de estado. Ele executa duas instâncias da outra máquina de estado em paralelo: uma usando o padrão Executar um trabalho (.sync) e outra usando o padrão Aguarde um retorno de chamada com o token de tarefa.
Para obter mais informações sobre como AWS Step Functions pode controlar outros AWS serviços, vejaIntegrando serviços com Step Functions.
{
"Comment": "An example of combining workflows using a Step Functions StartExecution task state with various integration patterns.",
"StartAt": "Start new workflow and continue",
"States": {
"Start new workflow and continue": {
"Comment": "Start an execution of another Step Functions state machine and continue",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": false,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
},
"Next": "Start in parallel"
},
"Start in parallel": {
"Comment": "Start two executions of the same state machine in parallel",
"Type": "Parallel",
"End": true,
"Branches": [
{
"StartAt": "Start new workflow and wait for completion",
"States": {
"Start new workflow and wait for completion": {
"Comment": "Start an execution of the same 'NestingPatternAnotherStateMachine' and wait for its completion",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.sync",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": false,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
}
},
"OutputPath": "$.Output",
"End": true
}
}
},
{
"StartAt": "Start new workflow and wait for callback",
"States": {
"Start new workflow and wait for callback": {
"Comment": "Start an execution and wait for it to call back with a task token",
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution.waitForTaskToken",
"Parameters": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:NestingPatternAnotherStateMachine-HZ9gtgspmdun",
"Input": {
"NeedCallback": true,
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id",
"TaskToken.$": "$$.Task.Token"
}
},
"End": true
}
}
}
]
}
}
}
Para obter informações sobre como configurar IAM ao usar Step Functions com outros AWS serviços, vejaComo o Step Functions gera IAM políticas para serviços integrados.