Uso de objetivos universales 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 universales en EventBridge Scheduler

Un objetivo universal es un conjunto de parámetros personalizables que permiten invocar un conjunto más amplio de API operaciones para muchos servicios. AWS Por ejemplo, puedes usar un parámetro de destino universal (UTP) para crear una nueva SQS cola de Amazon mediante la CreateQueueoperación.

Para configurar un objetivo universal para su programación mediante el AWS CLI EventBridge programador o uno de ellosSDKs, debe especificar la siguiente información:

  • RoleArn— ARN Para la función de ejecución que desea utilizar para el objetivo. La función de ejecución que especifique debe tener los permisos necesarios para llamar a la API operación a la que desea que se dirija su programación.

  • Arn: el servicio completoARN, incluida la API operación a la que desea dirigirse, en el siguiente formato:arn:aws:scheduler:::aws-sdk:service:apiAction.

    Por ejemplo, en el caso de AmazonSQS, el nombre del servicio que especifiques esarn:aws:scheduler:::aws-sdk:sqs:sendMessage.

  • Entrada: una entrada bien formada JSON que especifiques con los parámetros de solicitud que EventBridge Scheduler envía al destino. API Los parámetros y la forma del programa JSON que establezca Input vienen determinados por el servicio que invoque API su programación. Para encontrar esta información, consulta la API referencia del servicio al que deseas dirigirte.

Acciones no admitidas

EventBridge El programador no admite API acciones de solo lectura, como las GET operaciones comunes, que comiencen con la siguiente lista de prefijos:

get describe list poll receive search scan query select read lookup discover validate batchGet batchDescribe batchRead transactGet adminGet adminList testMigration retrieve testConnection translateDocument isAuthorized invokeModel

Por ejemplo, el servicio ARN para la GetQueueUrlAPIacción sería el siguiente:. arn:aws:scheduler:::aws-sdk:sqs:getQueueURL Como la API acción comienza con el get prefijo, EventBridge Scheduler no admite este objetivo. Del mismo modo, la ListBrokersacción Amazon MQ no se admite como objetivo porque la operación comienza con el prefijo. list

Ejemplos que utilizan el destino universal

Los parámetros que introduzca en el Input campo de programación dependen de los parámetros de solicitud que acepte el servicio que desee invocar. API Por ejemplo, para apuntar a Lambda Invoke, puede configurar los parámetros que se enumeran en AWS Lambda API Referencia. Esto incluye la JSON carga útil opcional que puede pasar a una función Lambda.

Para determinar los parámetros que puede configurar de forma diferenteAPIs, consulte la API referencia de ese servicio. Al igual que LambdaInvoke, algunas APIs aceptan URI parámetros, así como una carga útil del cuerpo de la solicitud. En esos casos, usted especifica los parámetros de la URI ruta y la JSON carga útil en su programación. Input

Los siguientes ejemplos muestran cómo utilizar el destino universal para invocar API operaciones comunes con Lambda, SQS Amazon y Step Functions.

ejemplo Lambda
$ aws scheduler create-schedule --name lambda-universal-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "ROLE_ARN", "Arn":"arn:aws:scheduler:::aws-sdk:lambda:invoke" "Input": "{\"FunctionName\":\"arn:aws:lambda:REGION:123456789012:function:HelloWorld\",\"InvocationType\":\"Event\",\"Payload\":\"{\\\"message\\\":\\\"testing function\\\"}\"}" }' \ --flexible-time-window '{ "Mode": "OFF"}'
ejemplo Amazon SQS
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_universal= { "RoleArn": "<ROLE_ARN>", "Arn": "arn:aws:scheduler:::aws-sdk:sqs:sendMessage", "Input": "{\"MessageBody\":\"My message\",\"QueueUrl\":\"<QUEUE_URL>\"}"} } scheduler.create_schedule( Name="sqs-sdk-test", ScheduleExpression="rate(5 minutes)", Target=sqs_universal, FlexibleTimeWindow=flex_window)
ejemplo Step Functions
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 stepFunctionsUniversalTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("arn:aws:scheduler:::aws-sdk:sfn:startExecution") .input("{\"Input\":\"{}\",\"StateMachineArn\":\"<STATE_MACHINE_ARN>\"}") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE_NAME>") .scheduleExpression("rate(10 minutes)") .target(stepFunctionsUniversalTarget) .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 universal target"); } }