Utilizzo di obiettivi universali in EventBridge Scheduler - EventBridge Pianificatore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di obiettivi universali in EventBridge Scheduler

Un target universale è un set di parametri personalizzabile che consente di richiamare un set di API operazioni più ampio per molti servizi. AWS Ad esempio, puoi utilizzare un parametro di destinazione universale (UTP) per creare una nuova SQS coda Amazon utilizzando l'CreateQueueoperazione.

Per configurare un obiettivo universale per la tua pianificazione utilizzando lo AWS CLI Scheduler o uno degli EventBridge SchedulerSDKs, devi specificare le seguenti informazioni:

  • RoleArn— Il ruolo ARN di esecuzione che si desidera utilizzare per l'obiettivo. Il ruolo di esecuzione specificato deve disporre delle autorizzazioni per chiamare l'APIoperazione a cui si desidera indirizzare la pianificazione.

  • Arn: il servizio completoARN, inclusa l'APIoperazione a cui desideri rivolgerti, nel seguente formato:. arn:aws:scheduler:::aws-sdk:service:apiAction

    Ad esempio, per AmazonSQS, il nome del servizio specificato èarn:aws:scheduler:::aws-sdk:sqs:sendMessage.

  • Input: un formato ben formato JSON che specifichi con i parametri di richiesta che EventBridge Scheduler invia alla destinazione. API I parametri e la forma del JSON file impostato Input sono determinati dal servizio richiamato API dalla pianificazione. Per trovare queste informazioni, consulta il API riferimento per il servizio che desideri scegliere come target.

Azioni non supportate

EventBridge Scheduler non supporta API azioni di sola lettura, come le GET operazioni comuni, che iniziano con il seguente elenco di prefissi:

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

Ad esempio, il servizio ARN per l'GetQueueUrlAPIazione sarebbe il seguente:. arn:aws:scheduler:::aws-sdk:sqs:getQueueURL Poiché l'APIazione inizia con il get prefisso, EventBridge Scheduler non supporta questa destinazione. Allo stesso modo, l'azione Amazon MQ non ListBrokersè supportata come destinazione perché l'operazione inizia con il prefisso. list

Esempi che utilizzano il target universale

I parametri passati nel Input campo di pianificazione dipendono dai parametri di richiesta accettati dal servizio che API si desidera richiamare. Ad esempio, per scegliere come target Lambda Invoke, puoi impostare i parametri elencati in AWS Lambda API Reference. Ciò include il JSON payload opzionale che è possibile passare a una funzione Lambda.

Per determinare i parametri che puoi impostare per diversi tipiAPIs, consulta il API riferimento per quel servizio. Analogamente a LambdaInvoke, alcuni APIs accettano URI parametri e un payload del corpo della richiesta. In questi casi, si specificano i parametri del URI percorso e il JSON payload nella pianificazione. Input

Gli esempi seguenti mostrano come utilizzare il target universale per richiamare API operazioni comuni con Lambda, SQS Amazon e Step Functions.

Esempio 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"}'
Esempio 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)
Esempio 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"); } }