ス EventBridge ケジューラでのユニバーサルターゲットの使用 - EventBridge スケジューラ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ス EventBridge ケジューラでのユニバーサルターゲットの使用

ユニバーサルターゲットはカスタマイズ可能なパラメータのセットで、多くの AWS サービスに対してより広範なAPIオペレーションのセットを呼び出すことができます。例えば、ユニバーサルターゲットパラメータ (UTP) を使用して、 CreateQueueオペレーションを使用して新しい Amazon SQSキューを作成できます。

、またはス EventBridge ケジューラ のいずれかを使用して AWS CLIスケジュールのユニバーサルターゲットを設定するにはSDKs、次の情報を指定する必要があります。

  • RoleArn – ターゲットに使用するARN実行ロールの 。指定する実行ロールには、スケジュールでターゲットにするAPIオペレーションを呼び出すアクセス許可が必要です。

  • Arn – ターゲットにするAPIオペレーションARNを含む完全なサービス を の形式で指定しますarn:aws:scheduler:::aws-sdk:service:apiAction

    例えば、Amazon の場合SQS、指定するサービス名は ですarn:aws:scheduler:::aws-sdk:sqs:sendMessage

  • 入力 – ス EventBridge ケジューラがターゲット に送信するリクエストパラメータでJSON指定する正しい形式API。でJSON設定した のパラメータと形状Inputは、スケジュールが呼び出すサービスによって決まりAPIます。この情報を確認するには、ターゲットにするサービスのAPIリファレンスを参照してください。

サポートされていないアクション

EventBridge スケジューラは、次のプレフィックスのリストで始まる一般的なGETオペレーションなどの読み取り専用APIアクションをサポートしていません。

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

例えば、 GetQueueUrlAPIアクションARNのサービスは になりますarn:aws:scheduler:::aws-sdk:sqs:getQueueURL。API アクションは get プレフィックスで始まるため、ス EventBridge ケジューラはこのターゲットをサポートしていません。同様に、Amazon MQ アクションListBrokersはプレフィックス で始まるため、ターゲットとしてサポートされていませんlist

ユニバーサルターゲットの使用例

スケジュールInputフィールドで渡すパラメータは、API呼び出すサービスが受け入れるリクエストパラメータによって異なります。例えば、Lambda をターゲットにするにはInvokeAWS Lambda APIリファレンス にリストされているパラメータを設定できます。これには、Lambda 関数に渡すことができるオプションのJSONペイロードが含まれます。

さまざまな に設定できるパラメータを確認するにはAPIs、そのサービスのAPIリファレンスを参照してください。Lambda と同様にInvoke、一部の はURIパラメータとリクエストボディペイロードAPIsを受け入れます。このような場合は、スケジュール でURIパスパラメータとJSONペイロードを指定しますInput

次の例は、ユニバーサルターゲットを使用して Lambda、Amazon 、SQSおよび Step Functions で一般的なAPIオペレーションを呼び出す方法を示しています。

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