Iniciar una máquina de estados en respuesta a eventos en Step Functions - 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 una máquina de estados en respuesta a eventos en Step Functions

Puede ejecutar un AWS Step Functions state machine en respuesta a una EventBridge regla de Amazon.

En este tutorial, se muestra cómo configurar una máquina de estados como destino para una EventBridge regla de Amazon. 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, 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 evento de Amazon S3 enviada a EventBridge.

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

Antes de poder configurar una máquina de estados como EventBridge destino de Amazon, debe crear la máquina de estados.

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 cargue un archivo en este depósito, se EventBridge desencadene la ejecución de su máquina de estados.

  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 los cubos deben ser únicos en todos los nombres de los depósitos existentes en todos AWS Regiones de Amazon S3. Utilice las suyas username para que este nombre sea único. Debe crear todos los recursos de la misma manera AWS Región.

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

Paso 2: Habilite la 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 EventBridge siempre que ocurran ciertos eventos en su 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ázate hacia abajo en la página para ver la sección Notificaciones de eventos y, a continuación, selecciona Editar en la EventBridge subsección de Amazon.

  5. En Enviar notificaciones a Amazon EventBridge para todos los eventos de este grupo, selecciona Activado.

  6. Elija Guardar cambios.

    nota

    Tras activarlo EventBridge, los cambios tardarán unos cinco minutos en surtir efecto.

Paso 3: Crea una EventBridge regla de Amazon

Una vez que tenga una máquina de estados y haya creado el bucket de Amazon S3 y lo haya configurado para enviar notificaciones de eventos EventBridge, cree una EventBridge regla.

nota

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

Para crear la regla de

  1. Ve a la EventBridge consola de Amazon y selecciona Crear regla.

    sugerencia

    Como alternativa, en el panel de navegación de la EventBridge consola, selecciona Reglas en Autobuses y, a continuación, selecciona 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. Para el origen del evento, mantenga la selección predeterminada de AWS eventos o eventos EventBridge asociados.

    2. En AWS servicio, elija 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 Next (Siguiente). Se abrirá la página Seleccionar destinos.

Para crear el destino

  1. En Target 1, mantenga la selección predeterminada de AWS servicio.

  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 crea la regla y se muestra la página Reglas, en la que se muestran todas tus EventBridge reglas de Amazon.

Paso 4: Probar la regla

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.

    Esto inicia una ejecución de su máquina de estados, pasando información desde AWS CloudTrail como entrada.

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

    Ve a la consola Step Functions y selecciona la máquina de estados utilizada en tu EventBridge regla de Amazon (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" } }