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á.
Automatizando a entrega de eventos do Step Functions com EventBridge
Com EventBridge, você pode selecionar eventos dos fluxos de trabalho padrão do Step Functions para enviar a outros serviços para processamento adicional. Essa técnica fornece uma maneira flexível de conectar componentes de forma flexível e monitorar seus recursos.
A Amazon EventBridge é um serviço sem servidor que conecta componentes de aplicativos para criar aplicativos escaláveis orientados por eventos. A arquitetura orientada a eventos é um estilo de criar sistemas de software fracamente acoplados que funcionam juntos emitindo e respondendo a eventos. Os eventos representam uma mudança de estado ou uma atualização.
Ao usar EventBridge para entregar eventos do Step Functions a outros serviços, você pode monitorar seus fluxos de trabalho padrão sem chamá-los continuamente DescribeExecutionAPIpara obter o status. As alterações de status nas execuções da máquina de estado são enviadas EventBridge automaticamente para. Você pode usar esses eventos para direcionar serviços. Por exemplo, eventos podem invocar um AWS Lambda função, publicar uma mensagem no tópico do Amazon Simple Notification Service (AmazonSNS) ou até mesmo executar outro SFN fluxo de trabalho.
Como funciona a entrega de eventos
O Step Functions gera e envia eventos para o barramento de EventBridge eventos padrão, que é provisionado automaticamente em cada AWS conta. Um barramento de eventos é um roteador que recebe eventos e os entrega a zero ou mais destinos, ou alvos. Os alvos são outros AWS serviços. Você pode especificar regras para o barramento de eventos que comparam os eventos com o padrão de eventos da regra. Quando o evento corresponde a um padrão, o barramento de eventos envia o evento para o (s) destino (s) especificado (s). O diagrama a seguir mostra esse processo:
Fluxos de trabalho padrão versus expressos
Somente fluxos de trabalho padrão emitem eventos para o. EventBridge Para monitorar a execução de fluxos de trabalho expressos, você pode usar o CloudWatch Logs. Consulte Login CloudWatch Logs.
Eventos Step Functions
O Step Functions envia automaticamente os seguintes eventos para o barramento de EventBridge eventos padrão. Os eventos que correspondem ao padrão de eventos de uma regra são entregues aos alvos especificados com base no melhor esforço. Os eventos podem ser entregues fora de ordem.
Para obter mais informações, consulte EventBridge os eventos no Guia EventBridge do usuário da Amazon.
Tipo de detalhe do evento | Descrição |
---|---|
Representa uma mudança no status da execução de uma máquina de estado. |
Entregando eventos do Step Functions usando EventBridge
Para que o barramento de eventos EventBridge padrão envie eventos do Step Functions para um destino, você deve criar uma regra. Cada regra contém um padrão de evento, que EventBridge corresponde a cada evento recebido no barramento de eventos. Se os dados do evento corresponderem ao padrão de evento especificado, EventBridge entregará esse evento ao (s) alvo (s) da regra.
Para obter instruções abrangentes sobre a criação de regras de barramento de eventos, consulte Criação de regras que reagem a eventos no Guia EventBridge do usuário.
Você também pode criar uma regra de barramento de eventos para uma máquina de estado específica a partir do Step Functions console:
Na página Detalhes de uma máquina de estado, escolha Ações e, em seguida, escolha Criar EventBridgeregra.
O EventBridge console abre a página Criar regra, com a máquina de estado selecionada como a origem do evento para a regra.
Siga o procedimento detalhado em Criação de regras que reagem aos eventos no Guia EventBridge do usuário.
Criação de padrões de eventos que correspondam aos eventos do Step Functions
Cada padrão de evento é um JSON objeto que contém:
-
Um atributo
source
que identifica o serviço que envia o evento. Para eventos Step Functions, a fonte éaws.states
. -
(Opcional): um atributo
detail-type
que contém uma matriz dos tipos de eventos a serem correlacionados. -
(Opcional): um atributo
detail
que contém quaisquer outros dados relacionados aos eventos a serem correlacionados.
Por exemplo, o padrão de evento a seguir corresponde a todos os eventos de Alteração do Status de Execução do Step Functions:
{ "source": ["aws.states"], "detail-type": ["Step Functions Execution Status Change"] }
Embora o exemplo a seguir corresponda a uma execução específica associada a uma máquina de estado específica, quando essa execução falha ou expira:
{ "source": ["aws.states"], "detail-type": ["Step Functions Execution Status Change"], "detail": { "status": ["FAILED", "TIMED_OUT"], "stateMachineArn": ["arn:aws:states:us-east-1:123456789012:stateMachine:state-machine"], "executionArn": ["arn:aws:states:us-east-1:123456789012:execution:state-machine-name:execution-name"] } }
Para obter mais informações sobre como escrever padrões de eventos, consulte Padrões de eventos no Guia EventBridge do usuário.
Acionando máquinas de estado do Step Functions usando eventos
Você também pode especificar uma máquina de estado do Step Functions como destino para a regra de barramento de EventBridge eventos. Isso permite que você acione a execução de um fluxo de trabalho do Step Functions em resposta a um evento de outro. AWS serviço.
Para obter mais informações, consulte as EventBridgemetas da Amazon no Guia EventBridge do usuário da Amazon.
Referência de detalhes de eventos do Step Functions
Todos os eventos de AWS os serviços têm um conjunto comum de campos contendo metadados sobre o evento, como o AWS serviço que é a origem do evento, a hora em que o evento foi gerado, a conta e a região em que o evento ocorreu e outros. Para obter definições desses campos gerais, consulte a referência de estrutura de eventos no Guia EventBridge do usuário da Amazon.
Além disso, cada evento tem um campo de detail
que contém dados específicos desse determinado evento.
Ao usar EventBridge para selecionar e gerenciar eventos do Step Functions, é útil ter em mente o seguinte:
-
O
source
campo para todos os eventos de Step Functions está definido comoaws.states
. -
O campo do
detail-type
especifica o tipo de evento.Por exemplo,
Step Functions Execution Status Change
. -
O campo de
detail
contém os dados específicos desse determinado evento.
Para obter informações sobre a construção de padrões de eventos que permitem que as regras correspondam aos eventos do Step Functions, consulte Padrões de eventos no Guia EventBridge do usuário da Amazon.
Para obter mais informações sobre eventos e como EventBridge os processa, consulte EventBridgeEventos da Amazon no Guia EventBridge do Usuário da Amazon.
Alteração do status de execução
Representa uma mudança no status da execução de uma máquina de estado.
Os detail-type
campos source
e estão incluídos abaixo porque contêm valores específicos para eventos Step Functions. Para obter as definições dos outros campos de metadados que estão incluídos em todos os eventos, consulte a referência da estrutura de eventos no Guia do EventBridge usuário da Amazon.
Estrutura de eventos
{ . . ., "detail-type": "Step Functions Execution Status Change", "source"": "aws.states", . . ., "detail"": { "executionArn"" : "string", "input" : "string", "inputDetails" : { "included" : "boolean" }, "name" : "string", "output" : "string", "outputDetails" : { "included" : "boolean" }, "startDate" : "integer", "stateMachineArn" : "string", "stopDate" : "integer", "status" : "RUNNING | SUCCEEDED | FAILED | TIMED_OUT | ABORTED | PENDING_REDRIVE" } }
Observações
Um evento de alteração do status de execução pode conter uma propriedade de entrada em sua definição. Para alguns eventos, um evento de alteração do status de execução 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 eventos.
-
Você pode determinar se uma carga foi truncada com as propriedades
inputDetails
eoutputDetails
. Para ver mais informações, consulte o Tipo de dados deCloudWatchEventsExecutionDataDetails
. -
Para fluxos de trabalho padrão, use DescribeExecutionpara ver a entrada e a saída completas.
O
DescribeExecution
não está disponível para fluxos de trabalho expressos. Se você quiser ver a entrada/saída completa, você pode:Envolva seu fluxo de trabalho expresso com um fluxo de trabalho padrão.
Use 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
exemplo Alteração do status de execução: 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 } }
exemplo Alteração do status de execução: 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 } } }
exemplo Alteração do status de execução: 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 } }
exemplo Alteração do status de execuçã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
exemplo Alteração do status de execução: abortada
{ "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 } }