Menggunakan target universal di EventBridge Scheduler - EventBridge Penjadwal

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan target universal di EventBridge Scheduler

Target universal adalah serangkaian parameter yang dapat disesuaikan yang memungkinkan Anda untuk memanggil serangkaian API operasi yang lebih luas untuk banyak layanan. AWS Misalnya, Anda dapat menggunakan parameter target universal (UTP) untuk membuat SQS antrian Amazon baru menggunakan CreateQueueoperasi.

Untuk mengonfigurasi target universal untuk jadwal Anda menggunakan AWS CLI, atau salah satu EventBridge PenjadwalSDKs, Anda perlu menentukan informasi berikut:

  • RoleArn— ARN Untuk peran eksekusi yang ingin Anda gunakan untuk target. Peran eksekusi yang Anda tentukan harus memiliki izin untuk memanggil API operasi yang Anda ingin jadwal Anda targetkan.

  • Arn — Layanan lengkapARN, termasuk API operasi yang ingin Anda targetkan, dalam format berikut:arn:aws:scheduler:::aws-sdk:service:apiAction.

    Misalnya, untuk AmazonSQS, nama layanan yang Anda tentukan adalaharn:aws:scheduler:::aws-sdk:sqs:sendMessage.

  • Input — Sebuah bentuk yang JSON Anda tentukan dengan baik dengan parameter permintaan yang EventBridge Scheduler kirim ke target. API Parameter dan bentuk yang JSON Anda tetapkan Input ditentukan oleh layanan yang API dipanggil jadwal Anda. Untuk menemukan informasi ini, lihat API referensi untuk layanan yang ingin Anda targetkan.

Tindakan yang tidak didukung

EventBridge Scheduler tidak mendukung API tindakan hanya-baca, seperti GET operasi umum, yang dimulai dengan daftar awalan berikut:

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

Misalnya, layanan ARN untuk GetQueueUrlAPItindakan tersebut adalah sebagai berikut:arn:aws:scheduler:::aws-sdk:sqs:getQueueURL. Karena API tindakan dimulai dengan get awalan, EventBridge Scheduler tidak mendukung target ini. Demikian pula, ListBrokerstindakan Amazon MQ tidak didukung sebagai target karena operasi dimulai dengan awalan. list

Contoh menggunakan target universal

Parameter yang Anda lewati di Input bidang jadwal bergantung pada parameter permintaan yang diterima oleh layanan yang ingin API Anda panggil. Misalnya, untuk menargetkan Lambda Invoke, Anda dapat mengatur parameter yang tercantum dalam AWS Lambda API Referensi. Ini termasuk JSON payload opsional yang dapat Anda berikan ke fungsi Lambda.

Untuk menentukan parameter yang dapat Anda atur untuk berbedaAPIs, lihat API referensi untuk layanan tersebut. Mirip dengan LambdaInvoke, beberapa APIs menerima URI parameter, serta payload badan permintaan. Dalam kasus seperti itu, Anda menentukan parameter URI jalur serta JSON muatan dalam jadwal Input Anda.

Contoh berikut menunjukkan cara Anda menggunakan target universal untuk menjalankan API operasi umum dengan Lambda, SQS Amazon, dan Step Functions.

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