メイン コンテンツをスキップする 補完的コンテンツへスキップ

シングルトリガーのタスクをマルチトリガーのタスクにアップグレード

重複しているシングルトリガーのタスクを、複数のトリガーを持つ1つのタスクにアップグレードします。

このタスクで使う必要があるトリガーごとにタスクを複製済みかもしれませんが、その作業はもう必要ありません。そのようなトリガーをスケジュールで直接定義し、そのスケジュールをこのタスクに適用できるようになりました。

情報メモ注: [in the UI] (UIで)シングルトリガーのタスクのスケジュールを編集すると、このタスクがマルチトリガーに変換されます。変換された後、GET /executables/tasks/{taskId}/scheduleエンドポイントを使用して、タスクのスケジュール詳細を取得する必要があります。

始める前に

  • TMCトークンを生成:

    生成されたサービスアカウントトークンは30分後に期限切れになります。期限切れになった場合は、エンドポイントhttps://api.<env>.cloud.talend.com/security/oauth/tokenPOSTメソッドを使って新しいトークンを生成します。トークンの生成に関する詳細は、サービスアカウントトークンを生成をご覧ください。

  • スケジュールの関連付けに必要なタスクのIDを知っていること。
    Talend Management Consoleの場合、このIDはこのタスクの専用ページに表示されます。例:
    タスクのページにあるタスクID。
    タスクIDは以下のAPIリクエストで取得することもできます。
    method: GET
    endpoint: https://api.<env>.cloud.talend.com/processing/executables/tasks
    headers: {
              "Content-Type": "application/json",
              "Authorization": "Bearer <your_personal_or_service_account_access_token>"
              }
    query parameters: {
              "workspaceId": "id_of_the_workspace_of_the_task_to_be_updated"
                      }
  • アップデートするタスクが属するワークスペースで、使用するユーザーまたはサービスアカウントがTMC_OPERATORロールとEXECUTOR権限を持っていること。

手順

  1. 1つのマルチトリガーのタスクにアップグレードするタスクインスタンスの既存のトリガーを取得します。この操作を行うためには、各タスクインスタンスに対して次ののAPIリクエストを発行します。

    method: GET
    endpoint: https://api.<env>.cloud.talend.com/orchestration/executables/tasks/<taskId>/run-config
    headers: {
              "Content-Type": "application/json",
              "Authorization": "Bearer <your_personal_or_service_account_access_token>"
              }
    payload: N/A
    レスポンスには、このタスクで定義されているトリガーが次のように表示されます。
    "trigger": {
        "type": "ONCE",
        "interval": 1,
        "startDate": "2019-09-25",
        "timeZone": "Europe/London",
        "atTimes": {
          "type": "AT_TIME",
          "times": [
            "10:00"
          ],
          "time": "10:00",
          "startTime": "10:00",
          "endTime": "23:00",
          "interval": "10"
        },
        "atDays": {
          "type": "DAY_OF_WEEK",
          "day": 3,
          "days": [
            "MONDAY",
            "WEDNESDAY",
            "FRIDAY"
          ]
        }
    スケジュールではWebhookトリガーがサポートされていないので注意が必要です。したがって、タスクインスタンスがWebhookトリガーを使用している場合はそれをそのまま維持する必要があります。
  2. 新しいスケジュールを作成し、前のステップで取得したトリガーのオブジェクト全体をそのスケジュールに貼り付けます。
  3. 各トリガーにnameフィールドを追加します。

    上の例は次のようになります。
    "trigger": {
        "name": "My unique once trigger"
        "type": "ONCE",
        "interval": 1,
        "startDate": "2019-09-25",
        "timeZone": "Europe/London",
        "atTimes": {
          "type": "AT_TIME",
          "times": [
            "10:00"
          ],
          "time": "10:00",
          "startTime": "10:00",
          "endTime": "23:00",
          "interval": "10"
        },
        "atDays": {
          "type": "DAY_OF_WEEK",
          "day": 3,
          "days": [
            "MONDAY",
            "WEDNESDAY",
            "FRIDAY"
          ]
        }
  4. スケジュールによってトリガーされる将来のイベントをシミュレートし、そのスケジュールを自分のタスクに割り当てます。手順全体の詳細は、スケジュールを使ってタスク実行を整理をご覧ください。

    このタスクは、上述のタスクインスタンスから複製された新しいインスタンスか、単純にこれらのタスクインスタンスのいずれかとなります。ターゲットタスクの既存のトリガーはすべて、この新しいスケジュールとそのトリガーによって置き換えられます。

  5. 重複しているタスクはもう必要ないので、すべて削除します。

タスクの結果

以上の操作で、タスクの複製済みの各インスタンスについて追加される必要があった時間トリガーがすべて、自分のタスクに含まれるようになります。

https://api.<env>.cloud.talend.com/orchestration/executables/tasks/<taskId>/run-configGETリクエストを発行すれば、レスポンスをチェックできます。Triggerオブジェクトでは、typeフィールドがMULTIPLEと表示されるようになります。
{
  "trigger": {
    "type": "MULTIPLE"
  },
  "runtime": {
    "type": "CLOUD"
  },
  "parallelExecutionAllowed": false,
  "logLevel": "WARN"
}

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。