Verwenden von universellen Zielen im EventBridge Scheduler - EventBridge Scheduler

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von universellen Zielen im EventBridge Scheduler

Ein universelles Ziel ist ein anpassbarer Satz von Parametern, mit dem Sie für viele Dienste einen breiteren Satz von Vorgängen API aufrufen können. AWS Sie können beispielsweise einen universellen Zielparameter (UTP) verwenden, um mithilfe des CreateQueueVorgangs eine neue SQS Amazon-Warteschlange zu erstellen.

Um mit dem oder einem der AWS CLI EventBridge Scheduler ein universelles Ziel für Ihren Zeitplan zu konfigurierenSDKs, müssen Sie die folgenden Informationen angeben:

  • RoleArn— Die ARN für die Ausführungsrolle, die Sie für das Ziel verwenden möchten. Die von Ihnen angegebene Ausführungsrolle muss über die Berechtigungen verfügen, um den API Vorgang aufzurufen, auf den Ihr Zeitplan abzielen soll.

  • Arn — Der komplette ServiceARN, einschließlich des API Vorgangs, auf den Sie abzielen möchten, im folgenden Format:arn:aws:scheduler:::aws-sdk:service:apiAction.

    Für Amazon SQS lautet der von Ihnen angegebene Servicename beispielsweisearn:aws:scheduler:::aws-sdk:sqs:sendMessage.

  • Eingabe — Ein wohlgeformtes Formular, das JSON Sie mit den Anforderungsparametern angeben, die der EventBridge Scheduler an das Ziel sendet. API Die von JSON Ihnen eingegebenen Parameter und deren Form Input werden durch den Service bestimmt, den API Ihr Zeitplan aufruft. Diese Informationen finden Sie in der API Referenz für den Service, auf den Sie abzielen möchten.

Nicht unterstützte Aktionen

EventBridge Scheduler unterstützt keine schreibgeschützten API Aktionen, wie z. B. allgemeine GET Operationen, die mit der folgenden Liste von Präfixen beginnen:

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

Der Dienst für die GetQueueUrlAPIAktion wäre ARN beispielsweise der folgende:. arn:aws:scheduler:::aws-sdk:sqs:getQueueURL Da die API Aktion mit dem get Präfix beginnt, unterstützt EventBridge Scheduler dieses Ziel nicht. Ebenso wird die Amazon MQ MQ-Aktion ListBrokersnicht als Ziel unterstützt, da der Vorgang mit dem Präfix beginnt. list

Beispiele für die Verwendung des universellen Ziels

Die Parameter, die Sie im Input Zeitplanfeld übergeben, hängen von den Anforderungsparametern ab, die der Dienst, den API Sie aufrufen möchten, akzeptiert. Um beispielsweise Lambda als Ziel zu Invokeverwenden, können Sie die in AWS Lambda APIReferenz aufgeführten Parameter festlegen. Dies beinhaltet die optionale JSON Nutzlast, die Sie an eine Lambda-Funktion übergeben können.

Informationen zur Bestimmung der Parameter, die Sie für verschiedene festlegen könnenAPIs, finden Sie in der API Referenz für diesen Dienst. Ähnlich wie bei Lambda Invoke APIs akzeptieren einige URI Parameter sowie eine Nutzlast des Anforderungstexts. In solchen Fällen geben Sie die URI Pfadparameter sowie die JSON Nutzlast in Ihrem Zeitplan an. Input

Die folgenden Beispiele zeigen, wie Sie das universelle Ziel verwenden, um allgemeine API Operationen mit LambdaSQS, Amazon und Step Functions aufzurufen.

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