

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 um fluxo de trabalho do Step Functions em resposta a eventos
<a name="tutorial-cloudwatch-events-s3"></a>

Você pode executar uma máquina de AWS Step Functions estado em resposta a um evento roteado por uma EventBridge regra da Amazon para Step Functions como destino. 

O tutorial a seguir mostra como configurar uma máquina de estado como alvo de uma EventBridge regra da Amazon. Sempre que arquivos forem adicionados a um bucket do Amazon Simple Storage Service (Amazon S3), EventBridge a regra iniciará a máquina de estado.

Um exemplo prático dessa abordagem pode ser uma máquina de estado que executa a análise do Amazon Rekognition em arquivos de imagem adicionados ao bucket para categorizar e atribuir palavras-chave.

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
<a name="tutorial-cloudwatch-events-s3-prereqs"></a>

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](tutorial-creating-lambda-state-machine.md).
+ Se você já tiver uma máquina de estado `Helloworld`, vá para a próxima etapa.

## Etapa 1: Criar um bucket no Amazon S3
<a name="tutorial-cloudwatch-events-s3-bucket"></a>

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](https://console.aws.amazon.com/s3/) e escolha **Criar bucket** para criar o bucket no qual armazenar seus arquivos e acione uma regra de evento do Amazon S3.

1. 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 próprio {{username}} para tornar esse nome único. Você precisa criar todos os recursos na mesma AWS região.

1. 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
<a name="tutorial-cloudwatch-events-s3-eb-notification"></a>

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](https://console.aws.amazon.com/s3/).

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

1. Escolha **Properties (Propriedades)**.

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

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

1. 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
<a name="tutorial-cloudwatch-events-s3-cwe"></a>

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
<a name="tutorial-cloudwatch-events-s3-create-rule"></a>

1. Navegue até o [ EventBridge console da Amazon](https://console.aws.amazon.com/events/) e escolha **Create rule**.
**dica**  
Como alternativa, no painel de navegação do EventBridge console, escolha **Regras** em **Ônibus** e escolha **Criar regra**.

1. Insira um **Nome** (por exemplo, `{{S3Step Functions}}`) e, opcionalmente, uma **Descrição** para a regra.

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

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

1. 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**.

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

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

   1. Selecione **Eventos específicos** e **Objeto criado**.

   1. Selecione **Buckets específicos por nome** e digite o nome do bucket criado na [Etapa 1](#tutorial-cloudwatch-events-s3-bucket) (`{{username}}-sfn-tutorial`) para armazenar seus arquivos.

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

### Para criar o destino
<a name="tutorial-cloudwatch-events-s3-create-rule2"></a>

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

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

1. Na lista **Máquina de estado**, selecione a máquina de estado que você [criou antes](#tutorial-cloudwatch-events-s3-prereqs) (por exemplo, `Helloworld`).

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

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

1. 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
<a name="tutorial-cloudwatch-events-test-rule"></a>

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](https://console.aws.amazon.com/s3/), selecione o bucket que você criou para armazenar arquivos (`{{username}}-sfn-tutorial`) e selecione **Fazer upload**.

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

1. 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`)](https://console.aws.amazon.com/states/).

1. 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
<a name="tutorial-cloudwatch-events-example"></a>

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"
    }
  }
```