Gestiona eventos basados en el tiempo con EventBridge Scheduler en AWS SAM - AWS Serverless Application Model

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.

Gestiona eventos basados en el tiempo con EventBridge Scheduler en AWS SAM

El contenido de este tema proporciona detalles sobre qué es Amazon EventBridge Scheduler, qué soporte AWS SAM ofrece, cómo puede crear eventos de Scheduler y ejemplos a los que puede hacer referencia al crear eventos de Scheduler.

¿Qué es el Programador de Amazon EventBridge?

Programa eventos en sus plantillas de AWS SAM con el Programador de EventBridge. El Programador de Amazon EventBridge es un servicio de programación que te permite crear, iniciar y gestionar decenas de millones de eventos y tareas en todos los servicios AWS. Este servicio es especialmente útil para los eventos relacionados con el tiempo. Puede usarlo para programar eventos e invocaciones periódicas basadas en el tiempo. También admite eventos únicos, así como expresiones cronológicas y cronológicas con una hora de inicio y finalización.

Para obtener más información acerca del Programador de Amazon EventBridge, consulta ¿Qué es el Programador de Amazon EventBridge? en la Guía del usuario del Programador de EventBridge.

Soporte del Programador de EventBridge en AWS SAM

La especificación de la plantilla de AWS Serverless Application Model (AWS SAM) proporciona una sintaxis simple y abreviada que puede utilizar para programar eventos con el Programador de EventBridge para AWS Lambda y AWS Step Functions.

Creación de eventos del Programador de EventBridge en AWS SAM

Define la propiedad ScheduleV2 como el tipo de evento en la plantilla de AWS SAM para definir el evento del Programador de EventBridge. Esta propiedad admite los tipos de recursos AWS::Serverless::Function y AWS::Serverless::StateMachine.

MyFunction: Type: AWS::Serverless::Function Properties: Events: CWSchedule: Type: ScheduleV2 Properties: ScheduleExpression: 'rate(1 minute)' Name: TestScheduleV2Function Description: Test schedule event MyStateMachine: Type: AWS::Serverless::StateMachine Properties: Events: CWSchedule: Type: ScheduleV2 Properties: ScheduleExpression: 'rate(1 minute)' Name: TestScheduleV2StateMachine Description: Test schedule event

La programación de eventos del Programador de EventBridge también admite colas de mensajes fallidos (DLQ) para eventos sin procesar. Para obtener más información sobre las colas de mensajes fallidos, consulta Configuración de una cola de mensajes fallidos para el Programador de EventBridge en la Guía del usuario de EventBridge Scheduler.

Cuando se especifica un ARN de DLQ, AWS SAM configura los permisos para que Scheduler envía mensajes al DLQ. Cuando no se especifica un ARN de DLQ, AWS SAM creará el recurso de DLQ.

Ejemplos

Ejemplo básico de definición de un evento del Programador de EventBridge con AWS SAM

Transform: AWS::Serverless-2016-10-31 Resources: MyLambdaFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: python3.8 InlineCode: | def handler(event, context): print(event) return {'body': 'Hello World!', 'statusCode': 200} MemorySize: 128 Events: Schedule: Type: ScheduleV2 Properties: ScheduleExpression: rate(1 minute) Input: '{"hello": "simple"}' MySFNFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: python3.8 InlineCode: | def handler(event, context): print(event) return {'body': 'Hello World!', 'statusCode': 200} MemorySize: 128 StateMachine: Type: AWS::Serverless::StateMachine Properties: Type: STANDARD Definition: StartAt: MyLambdaState States: MyLambdaState: Type: Task Resource: !GetAtt MySFNFunction.Arn End: true Policies: - LambdaInvokePolicy: FunctionName: !Ref MySFNFunction Events: Events: Schedule: Type: ScheduleV2 Properties: ScheduleExpression: rate(1 minute) Input: '{"hello": "simple"}'

Más información

Para obtener más información sobre la definición de la propiedad ScheduleV2 del Programador de EventBridge, consulta: