Utilisation de cibles modélisées dans EventBridge le planificateur - EventBridge Planificateur

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de cibles modélisées dans EventBridge le planificateur

Les cibles modélisées sont un ensemble d'APIopérations communes à un groupe de AWS services principaux, tels qu'AmazonSQS, Lambda et Step Functions. Par exemple, vous pouvez cibler le Invokefonctionnement de Lambda en fournissant la fonctionARN, ou le SendMessagefonctionnement d'Amazon SQS en utilisant la file d'attenteARN. Pour configurer une cible modélisée, vous devez également accorder des autorisations au rôle d'exécution du calendrier pour effectuer l'APIopération ciblée.

Pour configurer une cible modélisée par programmation à l'aide du AWS CLI ou de l'un des EventBridge planificateursSDKs, vous devez spécifier le rôle ARN d'exécution, la ressource cible, une entrée facultative que vous souhaitez que le ARN EventBridge planificateur fournisse à la cible, et pour certaines cibles modélisées, un ensemble unique de paramètres avec des options de configuration supplémentaires pour cette cible. Lorsque vous spécifiez le ARN pour une ressource cible modélisée, le EventBridge planificateur suppose automatiquement que vous souhaitez appeler l'APIopération prise en charge pour ce service. Si vous souhaitez que le EventBridge planificateur cible une API opération différente pour le service, vous devez configurer la cible en tant que cible universelle.

Vous trouverez ci-dessous une liste complète de toutes les cibles modélisées prises en charge EventBridge par Scheduler et, le cas échéant, l'ensemble unique de paramètres associés à chaque cible. Cliquez sur le lien correspondant à chaque ensemble de paramètres pour voir les champs obligatoires et facultatifs dans le EventBridge Scheduler API Reference.

Utilisez les exemples suivants pour savoir comment configurer différents modèles de cibles et les IAM autorisations requises pour chaque cible décrite.

Amazon SQS SendMessage

Exemple Politique d'autorisation pour le rôle d'exécution
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
Exemple 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"}'
Exemple 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)
Exemple 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

Exemple Politique d'autorisation pour le rôle d'exécution
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
Exemple 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"}'
Exemple 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)
Exemple 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

Exemple Politique d'autorisation pour le rôle d'exécution
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "states:StartExecution" ], "Effect": "Allow", "Resource": "*" } ] }
Exemple 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"}'
Exemple 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)
Exemple 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"); } }