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
Tópicos
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.
-
Para criar uma máquina de estado básica, use o tutorial Criar uma máquina de estado que usa uma função do Lambda.
-
Se você já tiver uma máquina de estado
Helloworld
, vá para a próxima etapa.
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.
-
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. -
Insira um Bucket name (Nome de bucket), como
.username
-sfn-tutorialnota
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. -
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.
-
Acesse o console do Amazon S3
. -
Na lista Buckets, escolha o nome do bucket para o qual você deseja habilitar eventos.
-
Escolha Properties (Propriedades).
-
Role a página para baixo para ver a seção Notificações de eventos e escolha Editar na EventBridge subseção Amazon.
-
Em Enviar notificações para a Amazon EventBridge para todos os eventos neste bucket, escolha Ativado.
-
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
-
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.
-
Insira um Nome (por exemplo,
) e, opcionalmente, uma Descrição para a regra.S3Step Functions
-
Para Barramento de eventos e Tipo de regra, mantenha as seleções padrão.
-
Escolha Próximo. Isso abre a página Criar padrão de evento.
-
Role para baixo até a seção Padrão de eventos e faça o seguinte:
-
Para Origem do evento, mantenha a seleção padrão de AWS eventos ou eventos de EventBridge parceiros.
-
Em Serviço da AWS , escolha Serviço de armazenamento simples (S3).
-
Para Tipo de evento, escolha Notificação de eventos do Amazon S3.
-
Selecione Eventos específicos e Objeto criado.
-
Selecione Buckets específicos por nome e digite o nome do bucket criado na Etapa 1 (
) para armazenar seus arquivos.username
-sfn-tutorial -
Escolha Próximo. Isso abre a página Selecionar destinos.
-
Para criar o destino
-
Em Destino 1, retenha a seleção-padrão do serviço da AWS .
-
Na lista suspensa Selecionar um destino, selecione Máquina de estado do Step Functions.
-
Na lista Máquina de estado, selecione a máquina de estado que você criou antes (por exemplo,
Helloworld
). -
Mantenha todas as seleções padrão na página e escolha Próximo. A página Configurar tags é aberta.
-
Escolha Avançar novamente. A página Revisar e criar é aberta.
-
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.
-
Adicione um arquivo ao bucket do Amazon S3.
Navegue até o console do Amazon S3
, selecione o bucket que você criou para armazenar arquivos (
) e selecione Fazer upload.username
-sfn-tutorial -
Adicione um arquivo,
por exemplo, e escolha Carregar.test.png
Isso inicia uma execução de sua máquina de estado, enviando informações do AWS CloudTrail como a entrada.
-
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
). -
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:::
" ], "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" } }
username
-sfn-tutorial