

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

# Jadwalkan Pipeline Runs
<a name="pipeline-eventbridge"></a>

[Anda dapat menjadwalkan eksekusi Amazon SageMaker Pipelines Anda menggunakan Amazon. EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) Amazon SageMaker Pipelines didukung sebagai target di [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html). Ini memungkinkan Anda untuk memulai eksekusi pipa bangunan model Anda berdasarkan peristiwa apa pun di bus acara Anda. Dengan EventBridge, Anda dapat mengotomatiskan eksekusi pipeline dan merespons secara otomatis peristiwa seperti pekerjaan pelatihan atau perubahan status titik akhir. Acara termasuk file baru yang diunggah ke bucket Amazon S3 Anda, perubahan status titik akhir Amazon AI karena drift, *dan topik SageMaker Amazon Simple* Notification Service (SNS).

Tindakan Pipelines berikut dapat dimulai secara otomatis:  
+  `StartPipelineExecution` 

Untuk informasi selengkapnya tentang penjadwalan pekerjaan SageMaker AI, lihat [Mengotomatiskan SageMaker AI dengan Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/automating-sagemaker-with-eventbridge.html). EventBridge 

**Topics**
+ [Jadwalkan Pipeline dengan Amazon EventBridge](#pipeline-eventbridge-schedule)
+ [Jadwalkan pipeline dengan SageMaker Python SDK](#build-and-manage-scheduling)

## Jadwalkan Pipeline dengan Amazon EventBridge
<a name="pipeline-eventbridge-schedule"></a>

Untuk memulai eksekusi pipeline dengan Amazon CloudWatch Events, Anda harus membuat EventBridge [aturan](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Rule.html). Saat Anda membuat aturan untuk acara, Anda menentukan tindakan target yang akan diambil saat EventBridge menerima peristiwa yang cocok dengan aturan. Ketika suatu peristiwa cocok dengan aturan, EventBridge mengirimkan acara ke target yang ditentukan dan memulai tindakan yang ditentukan dalam aturan. 

 Tutorial berikut menunjukkan cara menjadwalkan eksekusi pipeline dengan EventBridge menggunakan EventBridge konsol atau file AWS CLI.  

### Prasyarat
<a name="pipeline-eventbridge-schedule-prerequisites"></a>
+ Peran yang EventBridge dapat diasumsikan dengan `SageMaker::StartPipelineExecution` izin. Peran ini dapat dibuat secara otomatis jika Anda membuat aturan dari EventBridge konsol; jika tidak, Anda perlu membuat peran ini sendiri. Untuk informasi tentang membuat peran SageMaker AI, lihat [SageMaker Peran](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
+ Pipeline SageMaker AI Amazon untuk menjadwalkan. Untuk membuat Pipeline Amazon SageMaker AI, lihat [Mendefinisikan Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html).

### Buat EventBridge aturan menggunakan EventBridge konsol
<a name="pipeline-eventbridge-schedule-console"></a>

 Prosedur berikut menunjukkan cara membuat EventBridge aturan menggunakan EventBridge konsol.  

1. Navigasikan ke [konsol EventBridge ](https://console.aws.amazon.com/events) tersebut. 

1. Pilih **Aturan** di sisi kiri. 

1.  Pilih `Create Rule`. 

1. Masukkan nama dan deskripsi untuk aturan Anda.

1.  Pilih bagaimana Anda ingin memulai aturan ini. Anda memiliki pilihan berikut untuk aturan Anda: 
   + **Pola acara**: Aturan Anda dimulai ketika peristiwa yang cocok dengan pola terjadi. Anda dapat memilih pola yang telah ditentukan yang cocok dengan jenis acara tertentu, atau Anda dapat membuat pola kustom. Jika Anda memilih pola yang telah ditentukan, Anda dapat mengedit pola untuk menyesuaikannya. Untuk informasi selengkapnya tentang pola Peristiwa, lihat [Pola CloudWatch Peristiwa di Acara](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html). 
   + **Jadwal**: Aturan Anda dimulai secara teratur pada jadwal yang ditentukan. Anda dapat menggunakan jadwal tarif tetap yang dimulai secara teratur untuk jumlah menit, jam, atau minggu tertentu. Anda juga dapat menggunakan [ekspresi cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) untuk membuat jadwal yang lebih halus, seperti “Senin pertama setiap bulan pukul 8 pagi.” Jadwal tidak didukung pada bus acara khusus atau mitra. 

1. Pilih bus Acara yang Anda inginkan. 

1. Pilih target yang akan dipanggil saat acara cocok dengan pola acara Anda atau saat jadwal dimulai. Anda dapat menambahkan hingga 5 target per aturan. Pilih `SageMaker Pipeline` dalam daftar tarik-turun target. 

1. Pilih pipeline yang ingin Anda mulai dari daftar dropdown pipeline. 

1. Tambahkan parameter untuk diteruskan ke eksekusi pipeline Anda menggunakan nama dan pasangan nilai. Nilai parameter bisa statis atau dinamis. Untuk informasi selengkapnya tentang parameter Amazon SageMaker AI Pipeline, lihat [AWS::Events::Rule SagemakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-pipeline.html#aws-resource-sagemaker-pipeline-properties).
   + Nilai statis diteruskan ke eksekusi pipeline setiap kali pipeline dimulai. Misalnya, jika `{"Name": "Instance_type", "Value": "ml.4xlarge"}` ditentukan dalam daftar parameter, maka itu dilewatkan sebagai parameter di `StartPipelineExecutionRequest` setiap kali EventBridge memulai pipeline. 
   + Nilai dinamis ditentukan menggunakan jalur JSON. EventBridge mem-parsing nilai dari muatan peristiwa, lalu meneruskannya ke eksekusi pipeline. Misalnya: *`$.detail.param.value`* 

1. Pilih peran yang akan digunakan untuk aturan ini. Anda dapat menggunakan peran yang ada atau membuat yang baru. 

1. (Opsional) Tambahkan tanda. 

1. Pilih `Create` untuk menyelesaikan aturan Anda. 

 Aturan Anda sekarang berlaku dan siap untuk memulai eksekusi pipeline Anda. 

### Buat EventBridge aturan menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/events/index.html)
<a name="pipeline-eventbridge-schedule-cli"></a>

 Prosedur berikut menunjukkan cara membuat EventBridge aturan menggunakan AWS CLI. 

1. Buat aturan yang akan dimulai. Saat membuat EventBridge aturan menggunakan AWS CLI, Anda memiliki dua opsi untuk bagaimana aturan Anda dimulai, pola acara dan jadwal.
   +  **Pola acara**: Aturan Anda dimulai ketika peristiwa yang cocok dengan pola terjadi. Anda dapat memilih pola yang telah ditentukan yang cocok dengan jenis acara tertentu, atau Anda dapat membuat pola kustom. Jika Anda memilih pola yang telah ditentukan, Anda dapat mengedit pola untuk menyesuaikannya.  Anda dapat membuat aturan dengan pola acara menggunakan perintah berikut: 

     ```
     aws events put-rule --name <RULE_NAME> ----event-pattern <YOUR_EVENT_PATTERN> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
     ```
   +  **Jadwal**: Aturan Anda dimulai secara teratur pada jadwal yang ditentukan. Anda dapat menggunakan jadwal tarif tetap yang dimulai secara teratur untuk jumlah menit, jam, atau minggu tertentu. Anda juga dapat menggunakan ekspresi cron untuk membuat jadwal yang lebih halus, seperti “Senin pertama setiap bulan pukul 8 pagi.” Jadwal tidak didukung pada bus acara khusus atau mitra. Anda dapat membuat aturan dengan jadwal menggunakan perintah berikut: 

     ```
     aws events put-rule --name <RULE_NAME> --schedule-expression <YOUR_CRON_EXPRESSION> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
     ```

1. Tambahkan target untuk dipanggil saat acara cocok dengan pola acara Anda atau saat jadwal dimulai. Anda dapat menambahkan hingga 5 target per aturan.  Untuk setiap target, Anda harus menentukan:  
   +  ARN: ARN sumber daya pipa Anda. 
   +  Peran ARN: ARN peran EventBridge harus diasumsikan untuk mengeksekusi pipa. 
   +  Parameter: Parameter pipa Amazon SageMaker AI untuk dilewati. 

1. Jalankan perintah berikut untuk meneruskan pipeline Amazon SageMaker AI sebagai target ke aturan Anda menggunakan [put-target](https://docs.aws.amazon.com/cli/latest/reference/events/put-targets.html): 

   ```
   aws events put-targets --rule <RULE_NAME> --event-bus-name <EVENT_BUS_NAME> --targets "[{\"Id\": <ID>, \"Arn\": <RESOURCE_ARN>, \"RoleArn\": <ROLE_ARN>, \"SageMakerPipelineParameter\": { \"SageMakerParameterList\": [{\"Name\": <NAME>, \"Value\": <VALUE>}]} }]"] 
   ```

## Jadwalkan pipeline dengan SageMaker Python SDK
<a name="build-and-manage-scheduling"></a>

Bagian berikut menunjukkan cara mengatur izin untuk mengakses EventBridge sumber daya dan membuat jadwal pipeline Anda menggunakan SageMaker Python SDK. 

### Izin yang diperlukan
<a name="build-and-manage-scheduling-permissions"></a>

Anda harus memiliki izin yang diperlukan untuk menggunakan penjadwal pipa. Selesaikan langkah-langkah berikut untuk mengatur izin Anda:

1. Lampirkan kebijakan hak istimewa minimum berikut ke peran IAM yang digunakan untuk membuat pemicu pipeline, atau gunakan kebijakan AWS terkelola. `AmazonEventBridgeSchedulerFullAccess`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement":
       [
           {
               "Action":
               [
                   "scheduler:ListSchedules",
                   "scheduler:GetSchedule",
                   "scheduler:CreateSchedule",
                   "scheduler:UpdateSchedule",
                   "scheduler:DeleteSchedule"
               ],
               "Effect": "Allow",
               "Resource":
               [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/*", 
               "Condition": {
                   "StringLike": {
                       "iam:PassedToService": "scheduler.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. Membangun hubungan kepercayaan EventBridge dengan menambahkan prinsip layanan `scheduler.amazonaws.com` ke kebijakan kepercayaan peran ini. Pastikan Anda melampirkan kebijakan kepercayaan berikut ke peran eksekusi jika Anda meluncurkan buku catatan di SageMaker Studio.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "scheduler.amazonaws.com",
                    "sagemaker.amazonaws.com"
                ]
            },
        "Action": "sts:AssumeRole"
        }
    ]
}
```

------

### Buat jadwal pipeline
<a name="build-and-manage-scheduling-create"></a>

Menggunakan `PipelineSchedule` konstruktor, Anda dapat menjadwalkan pipeline untuk dijalankan sekali atau pada interval yang telah ditentukan. Jadwal pipa harus dari jenis`at`,`rate`, atau`cron`. Kumpulan jenis penjadwalan ini merupakan perpanjangan dari opsi [EventBridge penjadwalan](https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html). Untuk informasi selengkapnya tentang cara menggunakan `PipelineSchedule` kelas, lihat [sagemaker.workflow.trigger. PipelineSchedule](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#pipeline-schedule). Contoh berikut menunjukkan cara membuat setiap jenis penjadwalan dengan. `PipelineSchedule`

```
from sagemaker.workflow.triggers import PipelineSchedule

# schedules a pipeline run for 12/13/2023 at time 10:15:20 UTC
my_datetime_schedule = PipelineSchedule(
    name="<schedule-name>", 
    at=datetime(2023, 12, 13, 10, 15, 20)
)

# schedules a pipeline run every 5 minutes
my_rate_schedule = PipelineSchedule(
    name="<schedule-name>", 
    rate=(5, "minutes")
)

# schedules a pipeline run at 10:15am UTC on the last Friday of each month during the years 2022 to 2023
my_cron_schedule = PipelineSchedule(
    name="<schedule-name>", 
    cron="15 10 ? * 6L 2022-2023"
)
```

**catatan**  
Jika Anda membuat jadwal satu kali dan perlu mengakses waktu saat ini, gunakan `datetime.utcnow()` sebagai gantinya. `datetime.now()` Yang terakhir tidak menyimpan konteks zona saat ini dan menghasilkan waktu yang salah EventBridge.

### Pasang pelatuk ke pipa Anda
<a name="build-and-manage-scheduling-attach"></a>

Untuk melampirkan `PipelineSchedule` ke pipeline, panggil `put_triggers` panggilan pada objek pipeline yang Anda buat dengan daftar pemicu. Jika Anda mendapatkan respons ARN, Anda berhasil membuat jadwal di akun Anda dan EventBridge mulai memanggil pipeline target pada waktu atau tarif yang ditentukan. Anda harus menentukan peran dengan izin yang benar untuk melampirkan pemicu ke pipeline induk. Jika Anda tidak menyediakannya, Pipelines mengambil peran default yang digunakan untuk membuat pipeline dari file [konfigurasi](https://docs.aws.amazon.com/sagemaker/latest/dg/train-remote-decorator-config.html).

Contoh berikut menunjukkan cara melampirkan jadwal ke pipa.

```
scheduled_pipeline = Pipeline(
    name="<pipeline-name>",
    steps=[...],
    sagemaker_session=<sagemaker-session>,
)
custom_schedule = PipelineSchedule(
    name="<schedule-name>", 
    at=datetime(year=2023, month=12, date=25, hour=10, minute=30, second=30)
)
scheduled_pipeline.put_triggers(triggers=[custom_schedule], role_arn=<role>)
```

### Jelaskan pemicu saat ini
<a name="build-and-manage-scheduling-describe"></a>

Untuk mengambil informasi tentang pemicu pipeline yang dibuat, Anda dapat memanggil `describe_trigger()` API dengan nama pemicu. Perintah ini mengembalikan detail tentang ekspresi jadwal yang dibuat seperti waktu mulai, status diaktifkan, dan informasi berguna lainnya. Cuplikan berikut menunjukkan contoh pemanggilan:

```
scheduled_pipeline.describe_trigger(name="<schedule-name>")
```

### Sumber daya pemicu pembersihan
<a name="build-and-manage-scheduling-clean"></a>

Sebelum menghapus pipeline, bersihkan pemicu yang ada untuk menghindari kebocoran sumber daya di akun Anda. Anda harus menghapus pemicu sebelum menghancurkan pipeline induk. Anda dapat menghapus pemicu dengan meneruskan daftar nama pemicu ke `delete_triggers` API. Cuplikan berikut menunjukkan cara menghapus pemicu.

```
pipeline.delete_triggers(trigger_names=["<schedule-name>"])
```

**catatan**  
Waspadai batasan berikut saat Anda menghapus pemicu:  
Opsi untuk menghapus pemicu dengan menentukan nama pemicu hanya tersedia di Python SageMaker SDK. Menghapus pipeline di CLI atau panggilan API tidak menghapus `DeletePipeline` pemicu Anda. Akibatnya, pemicu menjadi yatim piatu dan SageMaker AI mencoba untuk memulai proses untuk pipa yang tidak ada.
[Juga, jika Anda menggunakan sesi notebook lain atau sudah menghapus target pipeline, bersihkan jadwal yatim melalui CLI penjadwal atau konsol.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/scheduler/delete-schedule.html) EventBridge 