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'CreateQueue
operazione.
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'GetQueueUrl
APIazione sarebbe il seguente:. arn:aws:scheduler:::aws-sdk:sqs:
Poiché l'APIazione inizia con il getQueueURL
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"); } }