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 CreateQueue
Vorgangs 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 beispielsweise
arn: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 GetQueueUrl
APIAktion wäre ARN beispielsweise der folgende:. arn:aws:scheduler:::aws-sdk:sqs:
Da die API Aktion mit dem getQueueURL
get
Präfix beginnt, unterstützt EventBridge Scheduler dieses Ziel nicht. Ebenso wird die Amazon MQ MQ-Aktion ListBrokers
nicht 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 Invoke
verwenden, 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"); } }