Iniciar ejecución de una máquina de estado en respuesta a eventos de Amazon S3 - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Iniciar ejecución de una máquina de estado en respuesta a eventos de Amazon S3

Puede ejecutar una máquina de estado de AWS Step Functions en respuesta a una regla de Amazon EventBridge.

En este tutorial se muestra cómo configurar una máquina de estado como destino de una regla de Amazon EventBridge. Esta regla iniciará la ejecución de una máquina de estado cuando los archivos se agreguen a un bucket de Amazon Simple Storage Service (Amazon S3).

En una aplicación práctica, se podría lanzar una máquina de estado que realice operaciones en los archivos que se agregan al bucket, como la creación de miniaturas o la ejecución de análisis de Amazon Rekognition en archivos de imagen y de vídeo.

En este tutorial, la ejecución de una máquina de estado de Helloworld se inicia cargando un archivo a un bucket de Amazon S3. A continuación, se revisa la entrada de ejemplo de esa ejecución para identificar la información que se incluye en la entrada de la notificación de eventos de Amazon S3 enviada a EventBridge.

Requisito previo: Creación de una máquina de estado

Para configurar una máquina de estado como destino de Amazon EventBridge es necesario crear la máquina de estado.

Paso 1: Crear un bucket en Amazon S3

Ahora que tiene una máquina de estado de Helloworld, debe crear un bucket de Amazon S3 que almacene sus archivos. En el paso 3 de este tutorial configurará una regla para que cuando se agregue un archivo a este bucket, EventBridge desencadene una ejecución de la máquina de estado.

  1. Navegue hasta la consola de Amazon S3 y, a continuación, elija Crear bucket para crear el bucket en el que desea almacenar los archivos y desencadenar una regla de eventos de Amazon S3.

  2. Escriba un nombre en Nombre del bucket, como username-sfn-tutorial.

    nota

    Los nombres de bucket deben ser únicos entre todos los nombres de buckets existentes en todas las regiones de AWS de Amazon S3. Utilice su propio nombre de usuario para que el nombre sea único. Tiene que crear todos los recursos en la misma región de AWS.

  3. Mantenga todas las selecciones predeterminadas de la página y elija Crear bucket.

Paso 2: Habilitar notificación de eventos de Amazon S3 con EventBridge

Después de crear el bucket de Amazon S3, configúrelo para que envíe eventos a EventBridge cuando se produzcan determinados eventos en el bucket de S3, como la carga de archivos.

  1. Vaya a la consola de Amazon IVS.

  2. En la lista Buckets, seleccione el nombre del bucket para el que desea habilitar eventos.

  3. Seleccione Propiedades.

  4. Desplácese hacia abajo por la página para ver la sección Notificación de eventos y, a continuación, seleccione Editar en la subsección Amazon EventBridge.

  5. En Enviar notificaciones a Amazon EventBridge para todos los eventos de este bucket, elija Activar.

  6. Elija Guardar cambios.

    nota

    Después de habilitar EventBridge, los cambios tardan alrededor de cinco minutos en aplicarse.

Paso 3: Crear una regla de Amazon EventBridge

Cuando tenga una máquina de estado, haya creado el bucket de Amazon S3 y lo haya configurado para enviar notificaciones de eventos a EventBridge, cree una regla de EventBridge.

nota

Debe configurar la regla de EventBridge en la misma región de AWS que el bucket de Amazon S3.

Para crear la regla de

  1. Vaya a la consola de Amazon EventBridge y seleccione Crear regla .

    sugerencia

    Otra opción consiste, en el panel de navegación de la consola de EventBridge, elegir Reglas en Buses y, a continuación, Crear regla.

  2. Escriba un Nombre para la regla (por ejemplo, S3Step Functions) y, si lo desea, introduzca una Descripción.

  3. Para Bus de eventos y Tipo de regla, mantenga las selecciones predeterminadas.

  4. Elija Siguiente. Se abrirá la página Crear un patrón de eventos.

  5. Desplácese hacia abajo hasta la sección Patrón de eventos y haga lo siguiente:

    1. En Origen del evento, deje la selección predeterminada de eventos de AWS o eventos de socios de EventBridge.

    2. En Service de AWS, seleccione Simple Storage Service (S3).

    3. En Tipo de evento, seleccione Notificación de eventos de Amazon S3.

    4. Seleccione Eventos específicos y, a continuación, Objeto creado.

    5. Elija Bucket(s) específico(s) por nombre y escriba el nombre del bucket que creó en el paso 1 (username-sfn-tutorial) para almacenar los archivos.

    6. Elija Siguiente. Se abrirá la página Seleccionar destinos.

Para crear el destino

  1. En Destino 1, mantenga la selección predeterminada de Servicio de AWS.

  2. En la lista desplegable Seleccionar un destino, seleccione la Máquina de estado de Step Functions.

  3. En la lista Máquina de estado, seleccione la máquina de estado que creó anteriormente (por ejemplo, Helloworld).

  4. Mantenga todas las selecciones predeterminadas de la página y elija Siguiente. Se abrirá la página Configurar etiquetas.

  5. Vuelva a seleccionar Siguiente. Se abrirá la página Revisar y crear.

  6. Revise los detalles de la regla y elija Crear regla.

    Se creará la regla y se abrirá la página Reglas, donde aparecen todas las reglas de Amazon EventBridge.

Paso 4: Probar la regla de

Ahora que todo está preparado, pruebe a agregar un archivo al bucket de Amazon S3 y, a continuación, observe la entrada de la ejecución resultante de la máquina de estado.

  1. Agregue un archivo al bucket de Amazon S3.

    Vaya a la consola de Amazon S3, seleccione el bucket que ha creado para almacenar archivos (username-sfn-tutorial) y, a continuación, elija Cargar.

  2. Agregue un archivo, por ejemplo test.png, y elija Cargar.

    Esta acción inicia una ejecución de la máquina de estado, que pasa información de AWS CloudTrail como entrada.

  3. Compruebe la ejecución de la máquina de estado.

    Vaya a la consola de Step Functions y seleccione la máquina de estado que ha utilizado en la regla de Amazon EventBridge (Helloworld).

  4. Seleccione la ejecución más reciente de esa máquina de estado y amplíe la sección Entrada de ejecución.

    Esta entrada incluye información como el nombre del bucket y el nombre del objeto. En un caso de uso real, una máquina de estado puede utilizar esta entrada para realizar acciones con ese objeto.

Ejemplo de entrada de ejecución

En el siguiente ejemplo se muestra una entrada típica en la ejecución de la 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" } }