

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Avvio di un flusso di lavoro Step Functions in risposta agli eventi
<a name="tutorial-cloudwatch-events-s3"></a>

Puoi eseguire una macchina a AWS Step Functions stati in risposta a un evento indirizzato da una EventBridge regola Amazon a Step Functions come destinazione. 

Il seguente tutorial mostra come configurare una macchina a stati come destinazione di una EventBridge regola Amazon. Ogni volta che i file vengono aggiunti a un bucket Amazon Simple Storage Service (Amazon S3), EventBridge la regola avvia la macchina a stati.

Un esempio pratico di questo approccio potrebbe essere una macchina a stati che esegue l'analisi di Amazon Rekognition su file di immagine aggiunti al bucket per classificare e assegnare parole chiave.

In questo tutorial, inizierai l'esecuzione di una macchina a `Helloworld` stati caricando un file in un bucket Amazon S3. Quindi esamini l'input di esempio di tale esecuzione per identificare le informazioni incluse nell'input della notifica di evento di Amazon S3 inviata a. EventBridge

## Prerequisito: creazione di una macchina a stati
<a name="tutorial-cloudwatch-events-s3-prereqs"></a>

Prima di poter configurare una macchina a stati come EventBridge destinazione Amazon, devi creare la macchina a stati.
+ Per creare una macchina a stati di base, usa il tutorial [Creazione di una macchina a stati che utilizza una funzione Lambda](tutorial-creating-lambda-state-machine.md).
+ Se disponi già di una macchina a stati `Helloworld`, vai alla fase successiva.

## Fase 1: creare un bucket in Amazon S3
<a name="tutorial-cloudwatch-events-s3-bucket"></a>

Ora che hai una macchina a `Helloworld` stati, devi creare un bucket Amazon S3 per archiviare i tuoi file. Nella fase 3 di questo tutorial, imposti una regola in modo che quando un file viene caricato in questo bucket, attivi l'esecuzione della tua EventBridge macchina a stati.

1. Accedi alla [console Amazon S3](https://console.aws.amazon.com/s3/), quindi scegli **Crea bucket per creare il bucket** in cui desideri archiviare i file e attivare una regola di evento Amazon S3.

1. Immettere **Bucket name (Nome bucket)**, come `username-sfn-tutorial`.
**Nota**  
I nomi dei bucket devono essere univoci per tutti i nomi di bucket esistenti in tutte le AWS regioni di Amazon S3. Usa il tuo *username* per rendere questo nome unico. È necessario creare tutte le risorse nella stessa AWS regione.

1. Mantieni tutte le selezioni predefinite sulla pagina e scegli **Crea bucket**.

## Fase 2: abilitare la notifica degli eventi di Amazon S3 con EventBridge
<a name="tutorial-cloudwatch-events-s3-eb-notification"></a>

Dopo aver creato il bucket Amazon S3, configuralo per inviare eventi EventBridge ogni volta che si verificano determinati eventi nel bucket S3, come i caricamenti di file.

1. Accedi alla console [Amazon S3](https://console.aws.amazon.com/s3/).

1. Nell'elenco **Bucket (Bucket)** scegli il nome del bucket per il quale abilitare gli eventi.

1. Scegliere **Properties (Proprietà)**.

1. Scorri la pagina verso il basso per visualizzare la sezione **Notifiche eventi**, quindi scegli **Modifica** nella EventBridge sottosezione **Amazon**.

1. In **Invia notifiche ad Amazon EventBridge per tutti gli eventi in questo bucket**, scegli **Attivato**.

1. Scegli **Save changes** (Salva modifiche).
**Nota**  
Dopo l'attivazione EventBridge, occorrono circa cinque minuti prima che le modifiche abbiano effetto.

## Fase 3: Creare una EventBridge regola Amazon
<a name="tutorial-cloudwatch-events-s3-cwe"></a>

Dopo aver creato una macchina a stati e aver creato il bucket Amazon S3 e averlo configurato per inviare notifiche di eventi a EventBridge, crea una regola. EventBridge 

**Nota**  
È necessario configurare la EventBridge regola nella stessa AWS regione del bucket Amazon S3.

### Per creare la regola
<a name="tutorial-cloudwatch-events-s3-create-rule"></a>

1. Vai alla [ EventBridge console Amazon](https://console.aws.amazon.com/events/), scegli **Crea regola**.
**Suggerimento**  
In alternativa, nel riquadro di navigazione della EventBridge console, scegli **Regole** in **Autobus**, quindi scegli **Crea regola**.

1. Inserisci un **nome** per la regola (ad esempio`S3Step Functions`) e, facoltativamente, inserisci una **descrizione** per la regola.

1. Per **Event bus** e **Rule type**, mantieni le selezioni predefinite.

1. Scegli **Next (Successivo)**. Verrà aperta la pagina **Build event pattern**.

1. Scorri verso il basso fino alla sezione **Event pattern** ed esegui le seguenti operazioni:

   1. Per **Event source**, mantieni la selezione predefinita di **AWS eventi o eventi EventBridge partner**.

   1. Per l'**AWS assistenza**, scegli **Simple Storage Service (S3).**

   1. Per il **tipo di evento**, scegli **Amazon S3 Event Notification**.

   1. Scegli **Evento/i specifico/i**, quindi scegli **Oggetto creato**.

   1. Scegliete **uno o più bucket specifici per nome** e inserite il nome del bucket creato nel [passaggio 1](#tutorial-cloudwatch-events-s3-bucket) (`username-sfn-tutorial`) per archiviare i file.

   1. Scegli **Next (Successivo)**. Si apre la **pagina Seleziona obiettivi.**

### Per creare il target
<a name="tutorial-cloudwatch-events-s3-create-rule2"></a>

1. In **Target 1**, mantieni la selezione predefinita del **AWS servizio**.

1. Nell'elenco a discesa **Seleziona una destinazione**, seleziona **Step Functions state machine**.

1. Nell'elenco **Macchina a stati**, seleziona la macchina a stati [creata in precedenza](#tutorial-cloudwatch-events-s3-prereqs) (ad esempio,`Helloworld`).

1. Mantieni tutte le selezioni predefinite nella pagina e scegli **Avanti**. Si apre la pagina **Configura i tag**.

1. Scegliere **Next (Successivo)** di nuovo. Si apre la pagina **Rivedi e crea**.

1. Rivedi i dettagli della regola e scegli **Crea regola**.

   La regola viene creata e viene visualizzata la pagina **Regole**, che elenca tutte le EventBridge regole Amazon.

## Fase 4: test della regola
<a name="tutorial-cloudwatch-events-test-rule"></a>

Ora che tutto è a posto, prova ad aggiungere un file al bucket Amazon S3, quindi esamina l'input dell'esecuzione della macchina a stati risultante.

1. Aggiungi un file al tuo bucket Amazon S3.

   **Accedi alla [console Amazon S3](https://console.aws.amazon.com/s3/), scegli il bucket che hai creato per archiviare i file (`username-sfn-tutorial`), quindi scegli Carica.**

1. **Aggiungi un file, ad esempio`test.png`, quindi scegli Carica.**

   In questo modo, viene avviata un'esecuzione della macchina a stati, trasmettendo informazioni da AWS CloudTrail come input.

1. Controllare l'esecuzione della macchina a stati.

   Vai alla [console Step Functions e seleziona la macchina a stati utilizzata nella tua EventBridge regola Amazon (`Helloworld`)](https://console.aws.amazon.com/states/).

1. Seleziona l'esecuzione più recente di quella macchina a stati ed espandi la sezione **Execution Input**.

   Questo input include informazioni come il nome del bucket e il nome dell'oggetto. In un caso d'uso reale, una macchina a stati può utilizzare questo input per eseguire azioni su quell'oggetto.

## Esempio di input di esecuzione
<a name="tutorial-cloudwatch-events-example"></a>

L'esempio seguente mostra un input tipico per l'esecuzione della macchina a stati.

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