Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan target template di Scheduler EventBridge
Target Templated adalah serangkaian API operasi umum di sekelompok AWS layanan inti, seperti Amazon, LambdaSQS, dan Step Functions. Misalnya, Anda dapat menargetkan Invoke
operasi Lambda dengan menyediakan fungsiARN, atau SendMessage
operasi SQS Amazon menggunakan antrianARN. Untuk mengonfigurasi target template, Anda juga harus memberikan izin ke peran eksekusi jadwal untuk melakukan operasi yang ditargetkanAPI.
Untuk mengonfigurasi target template secara terprogram menggunakan AWS CLI atau salah satu dari EventBridge SchedulerSDKs, Anda perlu menentukan peran eksekusi, sumber daya target ARN untuk, input opsional yang ingin Anda kirimkan oleh EventBridge Scheduler ke target, dan untuk beberapa target template, serangkaian parameter unik dengan opsi konfigurasi tambahan untuk target tersebut. ARN Saat Anda menentukan sumber daya target template, EventBridge Scheduler secara otomatis mengasumsikan bahwa Anda ingin memanggil API operasi yang didukung untuk layanan tersebut. ARN Jika Anda ingin EventBridge Scheduler menargetkan API operasi yang berbeda untuk layanan, Anda harus mengonfigurasi target sebagai target universal.
Berikut ini adalah daftar lengkap semua target template yang didukung EventBridge Scheduler, dan jika berlaku, setiap set unik parameter terkait target. Pilih tautan untuk setiap set parameter untuk melihat bidang wajib, dan opsional, di APIReferensi EventBridge Penjadwal.
-
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
Gunakan contoh berikut untuk mempelajari cara mengonfigurasi target template yang berbeda, dan IAM izin yang diperlukan untuk setiap target yang dijelaskan.
Amazon SQS SendMessage
contoh Kebijakan izin untuk peran eksekusi
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
contoh 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"}'
contoh 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)
contoh Jawa 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
contoh Kebijakan izin untuk peran eksekusi
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
contoh 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"}'
contoh 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)
contoh Jawa 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
contoh Kebijakan izin untuk peran eksekusi
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "states:StartExecution" ], "Effect": "Allow", "Resource": "*" } ] }
contoh 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"}'
contoh 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)
contoh Jawa 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"); } }