

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

# EventBridge スケジューラでのユニバーサルターゲットの使用
<a name="managing-targets-universal"></a>

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

 AWS CLIまたは EventBridge スケジューラ SDKs のいずれかを使用してスケジュールのユニバーサルターゲットを設定するには、次の情報を指定する必要があります。
+  **RoleArn** — ターゲットに使用したい実行ロールの ARN。指定する実行ロールには、スケジュールの対象とする API オペレーションを呼び出す権限が必要です。
+  **Arn** — ターゲットとする API オペレーションを含むサービス ARN 全体を、次の形式で示します: `arn:aws:scheduler:::aws-sdk:{{service}}:{{apiAction}}` 

   例えば、Amazon SQS の場合、指定するサービス名は `arn:aws:scheduler:::aws-sdk:sqs:sendMessage` です。
**注記**  
 ユニバーサルターゲット ARN {{のサービス}}値は、ターゲットサービスの AWS SDK サービス識別子と一致する必要があります。この識別子は、サービスのエンドポイントプレフィックスとは異なる場合があります。例えば、Amazon Cognito ID プロバイダーの場合は、 `cognitoidentityprovider` ( ではなく) を使用します`cognito-idp`。正しいサービス識別子を見つけるには、ターゲットにするサービスの AWS SDK ドキュメントを参照してください。
+  **Input** — EventBridge スケジューラがターゲット API に送信するリクエストパラメータで指定する、正しい形式の JSON。`Input` に設定する JSON のパラメータと形状は、スケジュールが呼び出すサービス API によって決まります。この情報については、対象とするサービスの API リファレンスをご覧ください。

## サポートされていないアクション
<a name="unsupported-api-actions"></a>

 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
```

 例えば、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html) API アクションのサービス ARN は次のようになります: `arn:aws:scheduler:::aws-sdk:sqs:getQueueURL` API アクションは `get` プレフィックスで始まるため、EventBridge スケジューラはこのターゲットをサポートしていません。同様に、Amazon MQ アクション [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers.html#ListBrokers](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers.html#ListBrokers) には `list` プレフィックスが付いているため、これはターゲットとしてサポートされません。

## ユニバーサルターゲットの使用例
<a name="managing-targets-universal-examples"></a>

 スケジュールの `Input` フィールドに渡すパラメータは、呼び出したいサービス API が受け入れるリクエストパラメータによって異なります。例えば、Lambda [https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html) をターゲットにするには、[「AWS Lambda API リファレンス」](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters)に記載されているパラメータを設定できます。これには、Lambda 関数に渡すことができるオプションの JSON [ペイロード](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestBody)が含まれます。

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

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

**Example 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"}'
```

**Example 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)
```

**Example 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");
    }
}
```