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 Zielvorlagen im Scheduler EventBridge
Bei Zielvorlagen handelt es sich um eine Reihe von allgemeinen API Vorgängen für eine Gruppe von AWS Kerndiensten wie AmazonSQS, Lambda und Step Functions. Sie können beispielsweise auf den Invoke
Betrieb von Lambda abzielen, indem Sie die Funktion bereitstellenARN, oder auf den SendMessage
Betrieb SQS von Amazon mithilfe der WarteschlangeARN. Um ein vorgegebenes Ziel zu konfigurieren, müssen Sie außerdem der Ausführungsrolle des Zeitplans Berechtigungen zur Ausführung des API Zielvorgangs erteilen.
Um ein Vorlagenziel programmgesteuert mit dem AWS CLI oder einem der EventBridge Scheduler zu konfigurierenSDKs, müssen Sie die ARN Ausführungsrolle, die ARN Zielressource, eine optionale Eingabe, die EventBridge Scheduler an das Ziel liefern soll, und für einige Ziele mit Vorlagen einen eindeutigen Satz von Parametern mit zusätzlichen Konfigurationsoptionen für dieses Ziel angeben. Wenn Sie ARN für eine Zielressource mit Vorlage angeben, geht EventBridge Scheduler automatisch davon aus, dass Sie den unterstützten Vorgang für diesen Dienst aufrufen möchten. API Wenn Sie möchten, dass EventBridge Scheduler auf einen anderen API Vorgang für den Dienst abzielt, müssen Sie das Ziel als universelles Ziel konfigurieren.
Im Folgenden finden Sie eine vollständige Liste aller von EventBridge Scheduler unterstützten Vorlagenziele und, falls zutreffend, der einzelnen zugehörigen Parameter für jedes Ziel. Wählen Sie den Link für jeden Parametersatz, um die erforderlichen und optionalen Felder in der EventBridge APIScheduler-Referenz zu sehen.
-
CodeBuild –
StartBuild
-
CodePipeline –
StartPipelineExecution
-
Amazon ECS —
RunTask
Parameter:
EcsParameters
-
EventBridge –
PutEvents
Parameter:
EventBridgeParameters
-
Amazon Inspector —
StartAssessmentRun
-
Kinesis –
PutRecord
Parameter:
KinesisParameters
-
Firehose —
PutRecord
-
Lambda –
Invoke
-
SageMaker –
StartPipelineExecution
Parameter:
SageMakerPipelineParameters
-
Amazon SNS —
Publish
-
Amazon SQS —
SendMessage
Parameter:
SqsParameters
-
Step Functions —
StartExecution
Anhand der folgenden Beispiele erfahren Sie, wie Sie verschiedene Ziele mit Vorlagen konfigurieren und welche IAM Berechtigungen für jedes der beschriebenen Ziele erforderlich sind.
Amazon SQS SendMessage
Beispiel Berechtigungsrichtlinie für die Ausführungsrolle
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
Beispiel AWS CLI
$
aws scheduler create-schedule --name sqs-templated --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "
ROLE_ARN
", "Arn":"QUEUE_ARN
", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" }' \ --flexible-time-window '{ "Mode": "OFF"}'
Beispiel Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" } scheduler.create_schedule( Name="sqs-python-templated", ScheduleExpression="rate(5 minutes)", Target=sqs_templated, FlexibleTimeWindow=flex_window)
Beispiel Java SDK
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 sqsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<QUEUE_ARN>") .input("Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE NAME>") .scheduleExpression("rate(10 minutes)") .target(sqsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and an Amazon SQS templated target"); } }
Lambda Invoke
Beispiel Berechtigungsrichtlinie für die Ausführungsrolle
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
Beispiel AWS CLI
$
aws scheduler create-schedule --name lambda-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "
ROLE_ARN
", "Arn":"FUNCTION_ARN
", "Input": "{ \"Payload\": \"TEST_PAYLOAD\" }" }' \ --flexible-time-window '{ "Mode": "OFF"}'
Beispiel Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } lambda_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<LAMBDA_ARN>", "Input": "{ 'Payload': 'TEST_PAYLOAD' }"} } scheduler.create_schedule( Name="lambda-python-templated", ScheduleExpression="rate(5 minutes)", Target=lambda_templated, FlexibleTimeWindow=flex_window)
Beispiel Java SDK
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 lambdaTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<Lambda ARN>") .input("{ 'Payload': 'TEST_PAYLOAD' }") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE_NAME>") .scheduleExpression("rate(10 minutes)") .target(lambdaTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .clientToken("<Token GUID>") .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and Lambda templated target"); } }
Step Functions StartExecution
Beispiel Berechtigungsrichtlinie für die Ausführungsrolle
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "states:StartExecution" ], "Effect": "Allow", "Resource": "*" } ] }
Beispiel AWS CLI
$
aws scheduler create-schedule --name sfn-templated-schedule --schedule-expression 'rate(5 minutes)' \ --target '{"RoleArn": "
ROLE_ARN
", "Arn":"STATE_MACHINE_ARN
", "Input": "{ \"Payload\": \"TEST_PAYLOAD\" }" }' \ --flexible-time-window '{ "Mode": "OFF"}'
Beispiel Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sfn_templated= { "RoleArn": "<ROLE_ARN>", "Arn": "<STATE_MACHINE_ARN>", "Input": "{ 'Payload': 'TEST_PAYLOAD' }" } scheduler.create_schedule(Name="sfn-python-templated", ScheduleExpression="rate(5 minutes)", Target=sfn_templated, FlexibleTimeWindow=flex_window)
Beispiel Java SDK
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 stepFunctionsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<STATE_MACHINE_ARN>") .input("{ 'Payload': 'TEST_PAYLOAD' }") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE_NAME>") .scheduleExpression("rate(10 minutes)") .target(stepFunctionsTarget) .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 templated target"); } }