# スケジュールを作成してトリガーを追加

スケジュールを作成し、タスクに関連付ける前にトリガーを追加します。

スケジュールは時間トリガーのみサポートしています。イベントにのみ関連するWebhookトリガーはサポートされていません。

## 始める前に

* TMCトークンを生成:

  * ユーザーの場合は、[パーソナルアクセストークンを生成](https://help.qlik.com/talend/r/ja-JP/Cloud/management-console-user-guide/cloud-access-token)に従ってパーソナルアクセストークンを生成します。
  * サービスアカウントの場合は、[サービスアカウントトークンを生成](https://help.qlik.com/talend/r/ja-JP/Cloud/api-user-guide/generate-service-account-token)に従ってサービスアクセストークンを生成します。

  生成されたサービスアカウントトークンは30分後に期限切れになります。期限切れになった場合は、エンドポイントhttps://api.&lt;env&gt;.cloud.talend.com/security/oauth/tokenでPOSTメソッドを使って新しいトークンを生成します。トークンの生成に関する詳細は、[サービスアカウントトークンを生成](https://help.qlik.com/talend/r/ja-JP/Cloud/api-user-guide/generate-service-account-token)をご覧ください。

* スケジュールを作成する環境の少なくとも1つのスペースで、APIコールの発行に使うユーザーまたはサービスアカウントがTMC\_OPERATOR権限とEXECUTOR権限を持っていること。

## 手順

1. 次のリクエストを発行して、スケジュールを作成します。1つのスケジュールにはトリガーが少なくとも1つ必要です。
   ### 例
   ```
   method: POST
   endpoint: https://api.<env>.cloud.talend.com/orchestration/schedules
   headers: {
         "Content-Type": "application/json",
         "Authorization": "Bearer <your_personal_access_token_or_service_account_token>"
             }
   payload: {
          "environmentId": "id_of_the_environment", #for example, 6242bc6eac74e9757cda41bb
          "Trigger": {
              "name": "My unique trigger name",
              "startDate": "2022-06-16",
              "timeZone": "Europe/Kiev",
              "type": "ONCE",
              atTimes: {
                  "type": "AT_TIME",
                  "time": "11:00"
                       }
                      }
             }
   ```
   * Talend Management Consoleの[Environment] (環境)ページの環境リストで、環境を選択します。この環境のIDは現在のページのURLに表示されます。 ![URLが表示され、環境のIDが強調表示されている状態。](https://help.qlik.com/talend/ja-JP/api-user-guide/Resources/images/tmc-environment-id.png)

   * API: 次のAPIコールを発行します。

     ```
     method: GET
     endpoint: https://api.<env>.cloud.talend.com/orchestration/workspaces
     headers: {
          "Content-Type": "application/json",
          "Authorization": "Bearer <your_personal_or_service_account_access_token>"
               }  
     ```

     レスポンスでは、各スペースブロックのenvironmentIdフィールドに環境のIDが返されます。

   次のステップでは、レスポンスのIdフィールドからこの新しいスケジュールのIDを使用する必要があります。
2. 次のAPIコールを発行して、この新しいスケジュールにトリガーを追加します。
   ### 例
   ```
   method: POST
   endpoint: https://api.<env>.cloud.talend.com/orchestration/schedules/<scheduleId>/triggers
   headers: {
         "Content-Type": "application/json",
         "Authorization": "Bearer <your_personal_access_token_or_service_account_token>"
             }
   payload: {
          "Trigger": {
                 "name": "My CRON Trigger",
                 "startDate": "2022-06-16",
                 "timeZone": "Europe/Kiev",
                 "type": "CRON",
                 "cronExpression": "0 * * ? *"
                     }
             }
   ```

   定義するトリガーは、以下の条件を満たす必要があります。リクエストを送信すると、自動チェックが進行します。
   * トリガー名は、同じスケジュール内で定義されるすべてのトリガーで一意であることが必要です。
   * 1つのスケジュールでは15個までトリガーを定義できます。
   * 同じタスクの2つのイベント(2つのタスク実行など)の間隔は5分以上でなければなりません。

   情報メモ注: エンドポイントURLで使用するスケジュールIDは、このスケジュールを作成した時にレスポンスで取得したIDを使用します。IDを書き留めていなかった場合は、次のAPIリクエストを発行し、お持ちのアカウントで利用可能なスケジュールをすべて取得します。
   ```
   method: GET
   endpoint: https://api.<env>.cloud.talend.com/orchestration/schedules
   headers: {
         "Content-Type": "application/json",
         "Authorization": "Bearer <your_personal_access_token_or_service_account_token>"
             }
   payload: {
          "environmentId": "id_of_the_environment", #for example, 6242bc6eac74e9757cda41bb
            }
   ```

   なお、環境内の少なくとも1つのスペースのView権限が必要です。

## タスクの結果

想定のトリガーが含まれるスケジュールが作成されました。スケジュールはまだ独立しています。

## 次のタスク

タスクにスケジュールを適用する前に、スケジュールがトリガーするイベントを一定期間シミュレートすることでスケジュールを確定または適合できます。