Uso de objetivos con plantillas en EventBridge Scheduler - EventBridge Planificador

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.

Uso de objetivos con plantillas en EventBridge Scheduler

Los objetivos con plantillas son un conjunto de API operaciones comunes en un grupo de AWS servicios principales, como AmazonSQS, Lambda y Step Functions. Por ejemplo, puede segmentar la Invokeoperación de Lambda proporcionando la funciónARN, o la SendMessageoperación SQS de Amazon utilizando la colaARN. Para configurar un objetivo con plantilla, también debe conceder permisos a la función de ejecución del programa para que pueda realizar la operación objetivo. API

Para configurar un objetivo con plantilla mediante programación mediante el EventBridge programador AWS CLI o uno de ellosSDKs, debe especificar la función de ejecución, el recurso ARN del destino, una entrada opcional que desee que el ARN EventBridge programador entregue al destino y, en el caso de algunos objetivos con plantilla, un conjunto único de parámetros con opciones de configuración adicionales para ese objetivo. Al especificar el recurso ARN de destino con plantilla, el EventBridge programador asume automáticamente que desea llamar a la operación compatible para ese servicio. API Si desea que EventBridge Scheduler se dirija a una API operación diferente para el servicio, debe configurar el destino como un destino universal.

La siguiente es una lista completa de todos los destinos con plantillas compatibles con EventBridge Scheduler y, si corresponde, del conjunto único de parámetros asociados a cada objetivo. Elija el enlace de cada conjunto de parámetros para ver los campos obligatorios y opcionales en la referencia del EventBridge programador API.

Utilice los siguientes ejemplos para aprender a configurar diferentes objetivos con plantillas y los IAM permisos necesarios para cada uno de los objetivos descritos.

Amazon SQS SendMessage

ejemplo Política de permisos para el rol de ejecución
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
ejemplo AWS CLI
$ aws scheduler create-schedule --name sqs-templated --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn":"QUEUE_ARN", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" }' \ --flexible-time-window '{ "Mode": "OFF"}'
ejemplo Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" } scheduler.create_schedule( Name="sqs-python-templated", ScheduleExpression="rate(5 minutes)", Target=sqs_templated, FlexibleTimeWindow=flex_window)
ejemplo Java SDK
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target sqsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<QUEUE_ARN>") .input("Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE NAME>") .scheduleExpression("rate(10 minutes)") .target(sqsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and an Amazon SQS templated target"); } }

Lambda Invoke

ejemplo Política de permisos para el rol de ejecución
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
ejemplo AWS CLI
$ aws scheduler create-schedule --name lambda-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn":"FUNCTION_ARN", "Input": "{ \"Payload\": \"TEST_PAYLOAD\" }" }' \ --flexible-time-window '{ "Mode": "OFF"}'
ejemplo Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } lambda_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<LAMBDA_ARN>", "Input": "{ 'Payload': 'TEST_PAYLOAD' }"} } scheduler.create_schedule( Name="lambda-python-templated", ScheduleExpression="rate(5 minutes)", Target=lambda_templated, FlexibleTimeWindow=flex_window)
ejemplo Java SDK
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target lambdaTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<Lambda ARN>") .input("{ 'Payload': 'TEST_PAYLOAD' }") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE_NAME>") .scheduleExpression("rate(10 minutes)") .target(lambdaTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .clientToken("<Token GUID>") .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and Lambda templated target"); } }

Step Functions StartExecution

ejemplo Política de permisos para el rol de ejecución
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "states:StartExecution" ], "Effect": "Allow", "Resource": "*" } ] }
ejemplo AWS CLI
$ aws scheduler create-schedule --name sfn-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn":"STATE_MACHINE_ARN", "Input": "{ \"Payload\": \"TEST_PAYLOAD\" }" }' \ --flexible-time-window '{ "Mode": "OFF"}'
ejemplo Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sfn_templated= { "RoleArn": "<ROLE_ARN>", "Arn": "<STATE_MACHINE_ARN>", "Input": "{ 'Payload': 'TEST_PAYLOAD' }" } scheduler.create_schedule(Name="sfn-python-templated", ScheduleExpression="rate(5 minutes)", Target=sfn_templated, FlexibleTimeWindow=flex_window)
ejemplo Java SDK
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target stepFunctionsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<STATE_MACHINE_ARN>") .input("{ 'Payload': 'TEST_PAYLOAD' }") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE_NAME>") .scheduleExpression("rate(10 minutes)") .target(stepFunctionsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .clientToken("<Token GUID>") .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and Step Function templated target"); } }