

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
<a name="managing-targets-universal"></a>

 *Target universal* adalah serangkaian parameter yang dapat disesuaikan yang memungkinkan Anda menjalankan serangkaian operasi API yang lebih luas untuk banyak layanan. AWS Misalnya, Anda dapat menggunakan parameter target universal (UTP) untuk membuat antrean Amazon SQS baru menggunakan operasi. [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue) 

 Untuk mengonfigurasi target universal untuk jadwal Anda menggunakan AWS CLI, atau salah satu EventBridge Penjadwal SDKs, 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 operasi API yang ingin ditargetkan oleh jadwal Anda. 
+  **ARN** — ARN layanan lengkap, termasuk operasi API yang ingin Anda targetkan, dalam format berikut:. `arn:aws:scheduler:::aws-sdk:{{service}}:{{apiAction}}` 

   Misalnya, untuk Amazon SQS, nama layanan yang Anda tentukan adalah. `arn:aws:scheduler:::aws-sdk:sqs:sendMessage` 
**catatan**  
 {{service}}Nilai dalam ARN target universal harus cocok dengan pengenal layanan AWS SDK untuk layanan target. Pengenal ini dapat berbeda dari awalan titik akhir layanan. Misalnya, untuk Penyedia Identitas Amazon Cognito, gunakan `cognitoidentityprovider` (tidak`cognito-idp`). Untuk menemukan pengenal layanan yang benar, lihat dokumentasi AWS SDK untuk layanan yang ingin Anda targetkan. 
+  **Input** - JSON yang terbentuk dengan baik yang Anda tentukan dengan parameter permintaan yang dikirim EventBridge Scheduler ke API target. Parameter dan bentuk JSON yang Anda tetapkan `Input` ditentukan oleh API layanan yang dipanggil jadwal Anda. Untuk menemukan informasi ini, lihat referensi API untuk layanan yang ingin Anda targetkan. 

## Tindakan yang tidak didukung
<a name="unsupported-api-actions"></a>

 EventBridge Scheduler tidak mendukung tindakan API 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 tindakan [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)API adalah sebagai berikut:. `arn:aws:scheduler:::aws-sdk:sqs:getQueueURL` Karena tindakan API dimulai dengan `get` awalan, EventBridge Scheduler tidak mendukung target ini. Demikian pula, [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)tindakan Amazon MQ tidak didukung sebagai target karena operasi dimulai dengan awalan. `list` 

## Contoh menggunakan target universal
<a name="managing-targets-universal-examples"></a>

 Parameter yang Anda berikan di `Input` bidang jadwal bergantung pada parameter permintaan yang diterima oleh API layanan yang ingin Anda panggil. Misalnya, untuk menargetkan Lambda [https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html), Anda dapat mengatur parameter yang tercantum dalam Referensi [AWS Lambda API](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters). Ini termasuk [payload](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestBody) JSON opsional yang dapat Anda berikan ke fungsi Lambda. 

 Untuk menentukan parameter yang dapat Anda tetapkan untuk berbeda APIs, lihat referensi API untuk layanan tersebut. Mirip dengan Lambda`Invoke`, beberapa APIs menerima parameter URI, serta payload badan permintaan. Dalam kasus seperti itu, Anda menentukan parameter jalur URI serta payload JSON dalam jadwal Anda. `Input` 

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

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