Roteamento de eventos do Step Functions usando a Amazon EventBridge - 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á.

Roteamento de eventos do Step Functions usando a Amazon EventBridge

A Amazon EventBridge é um AWS serviço que permite que você responda às mudanças de estado em um AWS recurso. Por exemplo, você pode responder às alterações do status de execução de um fluxo de trabalho padrão do Step Functions EventBridge usando as duas formas a seguir:

  • Você pode configurar EventBridge regras para reagir aos eventos que são emitidos quando o status de execução de uma máquina de estado do Step Functions muda. Isso permite que você monitore seus fluxos de trabalho sem precisar fazer pesquisas constantemente usando o. DescribeExecutionAPI Com base nas mudanças nas execuções de máquinas de estado, você pode usar um EventBridge destino para iniciar novas execuções de máquinas de estado, chamar AWS Lambda funções, publicar mensagens em tópicos do Amazon Simple Notification Service SNS (Amazon) e muito mais.

  • Você também pode configurar uma máquina de estado Step Functions como destino em EventBridge. Isso permite que você acione uma execução de um fluxo de trabalho do Step Functions em resposta a um evento de outro serviço da AWS .

    Para obter mais informações, consulte o Guia EventBridge do usuário da Amazon.

No entanto, os fluxos de trabalho expressos não emitem eventos para o. EventBridge Para monitorar a execução de um fluxo de trabalho expresso, você pode usar o CloudWatch Logs. Para fazer isso, na página Detalhes da execução da máquina de estado, escolha as guias Monitoramento e Registro em log. Na guia Monitoramento, você pode visualizar as CloudWatch métricas de eventos, como duração da execução, erros de execução e memória faturada. Na guia Registro em log, você pode ver os logs recentes e a configuração do log.

dica

Para implantar um exemplo de fluxo de trabalho expresso em seu Conta da AWS e aprender a monitorar fluxos de trabalho expressos, consulte o módulo Monitorando fluxos de trabalho expressos do The AWS Step Functions Workshop.

EventBridge cargas úteis

Um EventBridge evento pode conter uma propriedade de entrada em sua definição. Para alguns eventos, um EventBridge evento também pode conter uma propriedade de saída em sua definição.

  • Se a entrada de escape combinada e a saída de escape enviadas EventBridge excederem 248 KB, a entrada será excluída. Da mesma forma, se a saída de escape exceder 248 KB, a saída será excluída. Isso é resultado das cotas de EventBridge eventos.

  • Você pode determinar se uma carga foi truncada com as propriedades inputDetails e outputDetails. Para ver mais informações, consulte o Tipo de dados de CloudWatchEventsExecutionDataDetails.

  • Para fluxos de trabalho padrão, você pode ver a entrada e a saída completas usando DescribeExecution.

  • O DescribeExecution não está disponível para fluxos de trabalho expressos. Para ver a entrada/saída completa, você pode agrupar seu fluxo de trabalho expresso com um fluxo de trabalho padrão. Outra opção é usar o Amazon S3ARNs. Para obter informações sobre o usoARNs, consulteUsando o Amazon S3 ARNs em vez de transmitir grandes cargas em Step Functions.

Exemplos de eventos do Step Functions

Veja a seguir exemplos de Step Functions enviando eventos para EventBridge:

Em cada caso, a detail seção nos dados do evento fornece as mesmas informações que DescribeExecutionAPIo. O campo status indica o status da execução no momento em que o evento foi enviado (RUNNING, SUCCEEDED, FAILED, TIMED_OUT ou ABORTED dependendo do evento emitido).

Execução iniciada

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws::states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "RUNNING", "startDate": 1551225271984, "stopDate": null, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

Execução bem-sucedida

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "SUCCEEDED", "startDate": 1547148840101, "stopDate": 1547148840122, "input": "{}", "inputDetails": { "included": true }, "output": "\"Hello World!\"", "outputDetails": { "included": true } } }

Falha na execução

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "FAILED", "startDate": 1551225146847, "stopDate": 1551225151881, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

A execução atingiu o tempo limite

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "TIMED_OUT", "startDate": 1551224926156, "stopDate": 1551224927157, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

Execução interrompida

{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "ABORTED", "startDate": 1551225014968, "stopDate": 1551225017576, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }

Roteamento de um evento Step Functions para EventBridge o console EventBridge

Use as instruções a seguir para aprender como acionar a execução de uma máquina de estado do Step Functions sempre que uma máquina de estado específica do Step Functions for executada com êxito. Você usa o EventBridge console da Amazon para especificar a máquina de estado cuja execução você deseja acionar.

  1. Na página Detalhes de uma máquina de estado, escolha Ações e, em seguida, escolha Criar regra EventBridge (CloudWatch Eventos).

    Como alternativa, abra o EventBridge console em https://console.aws.amazon.com/events/. No painel de navegação, selecione Regras em Barramentos.

  2. Escolha Criar Regra. Isso abre a página Definir detalhes da regra.

  3. Insira um Nome (por exemplo, StepFunctionsEventRule) e, opcionalmente, uma Descrição para a regra.

  4. Para Barramento de eventos e Tipo de regra, mantenha as seleções padrão.

  5. Escolha Próximo. Isso abre a página Criar padrão de evento.

  6. Em Origem do evento, mantenha a seleção padrão de AWS eventos ou eventos de EventBridge parceiros.

  7. Mantenha as seleções padrão para as seções Evento de amostra e Método de criação.

  8. Em Padrão de evento, faça o seguinte:

    1. Na lista suspensa Origem do evento, mantenha a seleção padrão de serviços da AWS .

    2. Na lista suspensa Serviço da AWS , selecione Step Functions.

    3. Na lista suspensa Tipo de evento, selecione Alteração do status de execução do Step Functions.

    4. (Opcional) Configure um status específico, máquina de estado Amazon Resource Name (ARN) ou execuçãoARN. Para esse procedimento, escolha Status (s) específico (s) e escolha na SUCCEEDEDlista suspensa.

  9. Escolha Próximo. Isso abre a página Selecionar destinos.

  10. Em Tipos de destino, mantenha a seleção padrão do serviço da AWS .

  11. Na lista suspensa Selecionar um destino, escolha um AWS serviço. Por exemplo, você pode iniciar uma função do Lambda ou executar uma máquina de estado do Step Functions. Para esse procedimento, selecione máquina de estado do Step Functions.

  12. Na lista suspensa Máquina de estado, escolha uma máquina de estado.

  13. Em Perfil de execução, mantenha a seleção padrão de Criar uma nova função para este recurso específico.

  14. Escolha Próximo. A página Configurar tags é aberta.

  15. Escolha Próximo novamente. A página Revisar e criar é aberta.

  16. Analise os detalhes da regra e selecione Criar regra.

    A regra é criada e a página de regras é exibida, listando todas as suas EventBridge regras da Amazon.