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 CreateQueue
operació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 es
arn: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 GetQueueUrl
APIacción sería el siguiente:. arn:aws:scheduler:::aws-sdk:sqs:
Como la API acción comienza con el getQueueURL
get
prefijo, EventBridge Scheduler no admite este objetivo. Del mismo modo, la ListBrokers
acció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"); } }