Iniciando uma máquina de estado em resposta a eventos em Step Functions - 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á.

Iniciando uma máquina de estado em resposta a eventos em Step Functions

Você pode executar uma máquina de AWS Step Functions estado em resposta a uma EventBridge regra da Amazon.

Este tutorial mostra como configurar uma máquina de estado como destino para uma EventBridge regra da Amazon. Essa regra iniciará a execução da máquina de estados quando forem adicionados arquivos a um bucket do Amazon Simple Storage Service (Amazon S3).

Para uma aplicação prática, você pode iniciar uma máquina de estado que executa operações em arquivos que você adiciona ao bucket, como a criação de miniaturas ou a execução de análises do Amazon Rekognition em arquivos de imagem e de vídeo.

Neste tutorial, você começa a execução de uma máquina de estado Helloworld fazendo o upload de um arquivo para um bucket do Amazon S3. Em seguida, você revisa o exemplo de entrada dessa execução para identificar as informações que estão incluídas na entrada da notificação de eventos do Amazon S3 entregue para. EventBridge

Pré-requisito: criar uma máquina de estado

Antes de configurar uma máquina de estado como EventBridge alvo da Amazon, você deve criar a máquina de estado.

Etapa 1: Criar um bucket no Amazon S3

Agora que você tem uma máquina de estado Helloworld, precisa criar um bucket do Amazon S3 que armazene seus arquivos. Na Etapa 3 deste tutorial, você configura uma regra para que, quando um arquivo for carregado nesse bucket, EventBridge acione uma execução da sua máquina de estado.

  1. Navegue até o console do Amazon S3 e escolha Criar bucket para criar o bucket no qual armazenar seus arquivos e acione uma regra de evento do Amazon S3.

  2. Insira um Bucket name (Nome de bucket), como username-sfn-tutorial.

    nota

    Os nomes de bucket devem ser exclusivos em todos os nomes de buckets existentes em todas as AWS regiões do Amazon S3. Use o seu username para tornar esse nome único. Você precisa criar todos os recursos na mesma AWS região.

  3. Mantenha todas as seleções padrão na página e escolha Criar bucket.

Etapa 2: habilitar a notificação de eventos do Amazon S3 com EventBridge

Depois de criar o bucket do Amazon S3, configure-o para enviar eventos para EventBridge sempre que determinados eventos ocorrerem no seu bucket do S3, como uploads de arquivos.

  1. Acesse o console do Amazon S3.

  2. Na lista Buckets, escolha o nome do bucket para o qual você deseja habilitar eventos.

  3. Escolha Properties (Propriedades).

  4. Role a página para baixo para ver a seção Notificações de eventos e escolha Editar na EventBridge subseção Amazon.

  5. Em Enviar notificações para a Amazon EventBridge para todos os eventos neste bucket, escolha Ativado.

  6. Escolha Salvar alterações.

    nota

    Depois de habilitar EventBridge, leva cerca de cinco minutos para que as alterações entrem em vigor.

Etapa 3: criar uma EventBridge regra da Amazon

Depois de ter uma máquina de estado, criar o bucket do Amazon S3 e configurá-lo para enviar notificações de eventos EventBridge, crie uma EventBridge regra.

nota

Você deve configurar a EventBridge regra na mesma AWS região do bucket do Amazon S3.

Como criar a regra do

  1. Navegue até o EventBridge console da Amazon e escolha Create rule.

    dica

    Como alternativa, no painel de navegação do EventBridge console, escolha Regras em Ônibus e escolha Criar regra.

  2. Insira um Nome (por exemplo, S3Step Functions) e, opcionalmente, uma Descrição para a regra.

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

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

  5. Role para baixo até a seção Padrão de eventos e faça o seguinte:

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

    2. Em Serviço da AWS , escolha Serviço de armazenamento simples (S3).

    3. Para Tipo de evento, escolha Notificação de eventos do Amazon S3.

    4. Selecione Eventos específicos e Objeto criado.

    5. Selecione Buckets específicos por nome e digite o nome do bucket criado na Etapa 1 (username-sfn-tutorial) para armazenar seus arquivos.

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

Para criar o destino

  1. Em Destino 1, retenha a seleção-padrão do serviço da AWS .

  2. Na lista suspensa Selecionar um destino, selecione Máquina de estado do Step Functions.

  3. Na lista Máquina de estado, selecione a máquina de estado que você criou antes (por exemplo, Helloworld).

  4. Mantenha todas as seleções padrão na página e escolha Próximo. A página Configurar tags é aberta.

  5. Escolha Avançar novamente. A página Revisar e criar é aberta.

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

Etapa 4: Testar a regra

Agora que tudo está no lugar, teste a adição de um arquivo ao bucket do Amazon S3 e examine a entrada da execução da máquina de estado.

  1. Adicione um arquivo ao bucket do Amazon S3.

    Navegue até o console do Amazon S3, selecione o bucket que você criou para armazenar arquivos (username-sfn-tutorial) e selecione Fazer upload.

  2. Adicione um arquivo, test.png por exemplo, e escolha Carregar.

    Isso inicia uma execução de sua máquina de estado, enviando informações do AWS CloudTrail como a entrada.

  3. Verifique a execução de sua máquina de estado.

    Navegue até o console Step Functions e selecione a máquina de estado usada em sua EventBridge regra da Amazon (Helloworld).

  4. Selecione a execução mais recente da máquina de estado e expanda a seção Entrada de execução.

    Esta entrada inclui informações como o nome do bucket e o nome do objeto. Em um caso de uso do mundo real, uma máquina de estado pode usar essa entrada para executar ações nesse objeto.

Exemplo de entrada de execução

O exemplo a seguir mostra uma entrada típica para a execução da máquina de estado.

{ "version": "0", "id": "6c540ad4-0671-9974-6511-756fbd7771c3", "detail-type": "Object Created", "source": "aws.s3", "account": "123456789012", "time": "2023-06-23T23:45:48Z", "region": "us-east-2", "resources": [ "arn:aws:s3:::username-sfn-tutorial" ], "detail": { "version": "0", "bucket": { "name": "username-sfn-tutorial" }, "object": { "key": "test.png", "size": 800704, "etag": "f31d8546bb67845b4d3048cde533b937", "sequencer": "00621049BA9A8C712B" }, "request-id": "79104EXAMPLEB723", "requester": "123456789012", "source-ip-address": "200.0.100.11", "reason": "PutObject" } }