Iniciar a execução de uma máquina de estado em resposta a eventos do Amazon S3 - 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á.

Iniciar a execução de uma máquina de estado em resposta a eventos do Amazon S3

É possível executar uma máquina de estado do AWS Step Functions em resposta a uma regra do Amazon EventBridge.

Este tutorial mostra a você como configurar uma máquina de estado como destino para uma regra do Amazon EventBridge. 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 incluídas na entrada da notificação de eventos do Amazon S3 entregue ao EventBridge.

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

Antes de configurar uma máquina de estado como um destino do Amazon EventBridge, você deve criar uma 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ê vai configurar uma regra de modo que, quando um arquivo for carregado para esse bucket, o EventBridge acionará uma execução da 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 bucket existentes em todas as Regiões da AWS no Amazon S3. Use seu próprio nome de usuário para tornar esse nome exclusivo. É necessário criar todos os recursos na mesma região da AWS.

  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 o EventBridge

Depois de criar o bucket do Amazon S3, configure-o para enviar eventos para o EventBridge sempre que determinados eventos acontecerem no 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 subseção Amazon EventBridge.

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

  6. Escolha Save changes (Salvar alterações).

    nota

    Depois que você habilitar o EventBridge, leva cerca de cinco minutos para que as alterações sejam implementadas.

Etapa 3: Criar uma regra do Amazon EventBridge

Quando você tiver uma máquina de estado, tiver criado o bucket do Amazon S3 e configurado-o para enviar notificações de eventos para o EventBridge, crie uma regra do EventBridge.

nota

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

Como criar a regra do

  1. No console do Amazon EventBridge, escolha Criar regra.

    dica

    Como alternativa, no painel de navegação no console do Eventbridge, escolha Regras em Barramentos e 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. Clique em 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. Em Origem do evento, retenha a seleção-padrão de Eventos da AWS ou de parceiros do EventBridge.

    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. Clique em 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 Next (Próximo) novamente. A página Revisar e criar é aberta.

  6. Analise os detalhes da regra e escolha Criar regra.

    A regra é criada e a página Regras é exibida, listando todas as regras para o Amazon EventBridge.

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 do Step Functions e selecione a máquina de estado usada na regra do Amazon EventBridge (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" } }