翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ス 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
例えば、 GetQueueUrl
APIアクションARNのサービスは次のようになります: arn:aws:scheduler:::aws-sdk:sqs:
。API アクションは getQueueURL
get
プレフィックスで始まるため、ス EventBridge ケジューラはこのターゲットをサポートしていません。同様に、Amazon MQ アクション ListBrokers
には list
プレフィックスが付いているため、これはターゲットとしてサポートされません。
ユニバーサルターゲットの使用例
スケジュールInput
フィールドで渡すパラメータは、API呼び出すサービスが受け入れるリクエストパラメータによって異なります。例えば、Lambda をターゲットにするにはInvoke
、「 AWS Lambda APIリファレンス」にリストされているパラメータを設定できます。これには、Lambda 関数に渡すことができるオプションのJSONペイロードが含まれます。
さまざまな に設定できるパラメータを確認するにはAPIs、そのサービスのAPIリファレンスを参照してください。Lambda と同様にInvoke
、一部の はURIパラメータとリクエストボディペイロードAPIsを受け入れます。このような場合は、スケジュール でURIパスパラメータとJSONペイロードを指定しますInput
。
次の例は、ユニバーサルターゲットを使用して Lambda、Amazon 、SQSStep 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"); } }