スケジュールのエンドポイント

スケジュールは、バッチセグメント化ジョブを1日1回自動的に実行するために使用できるツールです。 /config/schedules エンドポイントを使用して、スケジュールのリストの取得、新しいスケジュールの作成、特定のスケジュールの詳細の取得、特定のスケジュールの更新、または特定のスケジュールの削除を行うことができます。

はじめに

このガイドで使用されているエンドポイントは、Adobe Experience Platform Segmentation Service APIの一部です。 続行する前に、必須ヘッダーやサンプル API呼び出しの読み取り方法など、APIへの呼び出しを正常に行うために知っておく必要がある重要な情報については、入門ガイド ​を確認してください。

スケジュールのリストの取得 retrieve-list

組織のすべてのスケジュールのリストを取得するには、/config/schedules エンドポイントにGET リクエストを行います。

API 形式

/config/schedules エンドポイントは、結果を絞り込むのに役立つ、複数のクエリパラメーターをサポートしています。 これらのパラメーターはオプションですが、高価なオーバーヘッドを減らすために使用することを強くお勧めします。 パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用可能なすべてのスケジュールが取得されます。 複数のパラメーターを使用する場合は、アンパサンド(&)で区切ります。

GET /config/schedules
GET /config/schedules?{QUERY_PARAMETERS}

クエリパラメータ

使用可能なクエリパラメーターのリスト。
table 0-row-3 1-row-3 2-row-3
パラメーター 説明
start オフセットの元となるページを開始します。 デフォルトでは、この値は 0 です。 start=5
limit 返されるスケジュールの数を指定します。 デフォルトでは、この値は 100 です。 limit=20

リクエスト

次のリクエストは、組織内に投稿された最後の10個のスケジュールを取得します。

スケジュールのリストを取得するためのサンプルリクエスト。
code language-shell
curl -X GET https://platform.adobe.io/data/core/ups/config/schedules?limit=10 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

応答が成功すると、HTTP ステータス 200が返され、指定した組織のスケジュールのリストがJSONとして返されます。

NOTE
次の応答は、スペースに対して切り捨てられ、最初に返されたスケジュールのみが表示されます。
スケジュールのリストを取得する際の応答のサンプル。
code language-json
{
    "_page": {
        "totalCount": 10,
        "pageSize": 1
    },
    "children": [
        {
            "id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
            "imsOrgId": "{ORG_ID}",
            "sandbox": {
                "sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
                "sandboxName": "prod",
                "type": "production",
                "default": true
            },
            "name": "Batch Segmentation",
            "state": "active",
            "type": "batch_segmentation",
            "schedule": "0 0 1 * * ?",
            "properties": {
                "segments": []
            },
            "createEpoch": 1573158851,
            "updateEpoch": 1574365202
        }
    ],
    "_links": {
        "next": {}
    }
}
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2
プロパティ 説明
_page.totalCount 返されたスケジュールの合計数。
_page.pageSize スケジュールのページのサイズ。
children.name スケジュールの名前を文字列として指定します。
children.type 文字列としてのジョブのタイプ。 サポートされているタイプは、「batch_segmentation」と「export」の2つです。
children.properties スケジュールに関連する追加のプロパティを含むオブジェクト。
children.properties.segments ["*"]を使用すると、すべてのセグメントが確実に含まれます。
children.schedule ジョブスケジュールを含む文字列。 ジョブは、1日に1回しか実行するようにスケジュールできません。つまり、24時間の間にジョブを1回以上実行するようにスケジュールすることはできません。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。
children.state スケジュール状態を含む文字列。 サポートされている2つのステートは「アクティブ」と「非アクティブ」です。 デフォルトでは、状態は「非アクティブ」に設定されています。

新しいスケジュールの作成 create

/config/schedules エンドポイントに POST リクエストをおこなうことで、新しいスケジュールを作成できます。

API 形式

POST /config/schedules

リクエスト

スケジュールを作成するためのサンプルリクエスト。
code language-shell
curl -X POST https://platform.adobe.io/data/core/ups/config/schedules \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'
 -d '
{
    "name":"profile-default",
    "type":"batch_segmentation",
    "properties":{
        "segments":[
            "*"
        ]
    },
    "schedule":"0 0 1 * * ?",
    "state":"inactive"
}'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
プロパティ 説明
name 必須。 スケジュールの名前を文字列として指定します。
type 必須。 文字列としてのジョブのタイプ。 サポートされているタイプは、「batch_segmentation」と「export」の2つです。
properties 必須。 スケジュールに関連する追加のプロパティを含むオブジェクト。
properties.segments typeが「batch_segmentation」に等しい場合は必須です。 ["*"]を使用すると、すべてのセグメントが確実に含まれます。
schedule オプション。 ジョブスケジュールを含む文字列。 ジョブは、1日に1回しか実行するようにスケジュールできません。つまり、24時間の間にジョブを1回以上実行するようにスケジュールすることはできません。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。

この文字列が指定されていない場合、システム生成のスケジュールが自動的に生成されます。
state オプション。 スケジュール状態を含む文字列。 サポートされている2つのステートは「アクティブ」と「非アクティブ」です。 デフォルトでは、状態は「非アクティブ」に設定されています。

応答

正常な応答では、新しく作成したスケジュールの詳細と共に HTTP ステータス 200 が返されます。

スケジュールを作成する際の応答サンプル。
code language-json
{
    "id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
        "sandboxName": "prod",
        "type": "production",
        "default": true
    },
    "name": "{SCHEDULE_NAME}",
    "state": "inactive",
    "type": "batch_segmentation",
    "schedule": "0 0 1 * * ?",
    "properties": {
        "segments": [
            "*"
        ]
    },
    "createEpoch": 1568267948,
    "updateEpoch": 1568267948
}

特定のスケジュールの取得 get

特定のスケジュールに関する詳細な情報を取得するには、/config/schedules エンドポイントにGET リクエストを行い、取得するスケジュールのIDをリクエストパスに指定します。

API 形式

GET /config/schedules/{SCHEDULE_ID}
パラメーター
説明
{SCHEDULE_ID}
取得するスケジュールのid値。

リクエスト

スケジュールを取得するためのサンプルリクエスト。
code language-shell
curl -X GET https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

正常な応答では、指定されたスケジュールの詳細情報と共に HTTP ステータス 200 が返されます。

スケジュールを取得する際の応答のサンプル。
code language-json
{
    "id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
        "sandboxName": "prod",
        "type": "production",
        "default": true
    },
    "name": "{SCHEDULE_NAME}",
    "state": "inactive",
    "type": "batch_segmentation",
    "schedule": "0 0 1 * * ?",
    "properties": {
        "segments": [
            "*"
        ]
    },
    "createEpoch": 1568267948,
    "updateEpoch": 1568267948
}
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
プロパティ 説明
name スケジュールの名前を文字列として指定します。
type 文字列としてのジョブのタイプ。 サポートされているタイプは batch_segmentationexport の 2 つです。
properties スケジュールに関連する追加のプロパティを含むオブジェクト。
properties.segments ["*"]を使用すると、すべてのセグメントが確実に含まれます。
schedule ジョブスケジュールを含む文字列。 ジョブは 1 日に 1 回のみ実行するようにスケジュールできます。つまり、24 時間の間に 2 回以上実行するようにジョブをスケジュールすることはできません。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。
state スケジュール状態を含む文字列。 サポートされている 2 つの状態は、activeinactive です。 デフォルトでは、状態は inactive に設定されています。

特定のスケジュールの詳細の更新 update

特定のスケジュールを更新するには、/config/schedules エンドポイントに対してPATCH リクエストを行い、更新しようとしているスケジュールのIDをリクエストパスに指定します。

PATCH リクエストを使用すると、個々のスケジュールの状態またはcron スケジュール ​のいずれかを更新できます。

API 形式

PATCH /config/schedules/{SCHEDULE_ID}
パラメーター
説明
{SCHEDULE_ID}
更新するスケジュールのid値。
スケジュールの状態を更新

JSON パッチ操作を使用して、スケジュールの状態を更新できます。 状態を更新するには、path プロパティを/stateとして宣言し、valueactiveまたはinactiveのいずれかに設定します。 JSON パッチについて詳しくは、JSON パッチ ​ ドキュメントを参照してください。

リクエスト

accordion
スケジュール状態を更新するためのサンプルリクエスト。
code language-shell
curl -X PATCH https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'
 -d '
[
    {
        "op": "add",
        "path": "/state",
        "value": "active"
    }
]'
table 0-row-2 1-row-2 2-row-2
プロパティ 説明
path パッチを適用する値のパス。 この場合、スケジュールの状態を更新するため、pathの値を「/state」に設定する必要があります。
value スケジュールの状態の更新値。 この値は、「アクティブ」または「非アクティブ」に設定して、スケジュールをアクティブ化または非アクティブ化できます。 組織でストリーミングが有効になっている場合は、でスケジュールを無効にすることはできません

応答

正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。

cron スケジュールの更新
JSON パッチ操作を使用して、cron スケジュールを更新できます。 スケジュールを更新するには、path プロパティを/scheduleとして宣言し、valueを有効なcron スケジュールに設定します。 JSON パッチについて詳しくは、JSON パッチ ​ ドキュメントを参照してください。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。

リクエスト

スケジュールを更新するためのサンプルリクエスト。
code language-shell
curl -X PATCH https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'
 -d '
[
    {
        "op":"add",
        "path":"/schedule",
        "value":"0 0 2 * * ?"
    }
]'
table 0-row-2 1-row-2 2-row-2
プロパティ 説明
path 更新する値のパス。 この場合、cron スケジュールを更新するため、pathの値を/scheduleに設定する必要があります。
value cron スケジュールの更新された値。 この値は、Cron スケジュールの形式で指定する必要があります。 この例では、スケジュールは毎月 2 日に実行されます。

応答

正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。

特定のスケジュールの削除

特定のスケジュールの削除をリクエストするには、/config/schedules エンドポイントに対してDELETE リクエストを行い、削除するスケジュールのIDをリクエストパスに指定します。

API 形式

DELETE /config/schedules/{SCHEDULE_ID}
パラメーター
説明
{SCHEDULE_ID}
削除するスケジュールのid値。

リクエスト

スケジュールを削除するためのサンプルリクエスト。
code language-shell
curl -X DELETE https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。

次の手順

このガイドを読むと、スケジュールの仕組みがより深く理解できるようになります。

付録 appendix

次の付録では、スケジュールで使用されるcron式の形式について説明します。

形式

cron式は、6個または7個のフィールドで構成される文字列です。 式は次のようになります。

0 0 12 * * ?

cron式の文字列では、最初のフィールドは秒、2番目のフィールドは分、3番目のフィールドは時間、4番目のフィールドは月の日、5番目のフィールドは月、6番目のフィールドは週の日を表します。 また、年を表す7番目のフィールドを含めることもできます。

フィールド名
必須
使用可能な値
許可されている特殊文字
Seconds
0-59
, - * /
Minutes
0-59
, - * /
時間数
0-23
, - * /
ある月の日付
1-31
, - * ? / L W
1-12月1日(PT)
, - * /
曜日
1-7、サンサット
, - * ? / L #
Year
×
空,1970-2099
, - * /
NOTE
月の名前と曜日の名前は、not​大文字と小文字が区別されます。 したがって、SUNsunの使用と同等です。

使用できる特殊文字は、次の意味を表します。

特殊文字
説明
*
この値は、フィールド内の​ すべての ​値を選択するために使用されます。 例えば、時間フィールドに*を入力すると、ごとに​時間になります。
?
この値は、特定の値が必要ないことを意味します。 これは一般的に、あるフィールドで文字が許可されている何かを指定するために使用されますが、他のフィールドでは指定されません。 例えば、月の3日ごとにイベントをトリガーする場合、曜日を気にしない場合は、「月の日」フィールドに3、「週の日」フィールドに?を入力します。
-
この値は、フィールドの​ 包含 ​範囲を指定するために使用されます。 例えば、9-15を「時間」フィールドに入れると、時間には9、10、11、12、13、14、15が含まれます。
,
この値は、追加の値を指定するために使用されます。 例えば、MON, FRI, SATを「曜日」フィールドに入れた場合、曜日には月曜日、金曜日、土曜日が含まれることを意味します。
/
この値は、増分を指定するために使用されます。 /の前に配置された値によって増分の場所が決まります。一方、/の後に配置された値によって、増分の量が決まります。 例えば、1/7を「分」フィールドに入れると、分には1、8、15、22、29、36、43、50、57が含まれます。
L
この値はLastを指定するために使用され、使用されるフィールドによって異なる意味を持ちます。 「月の日」フィールドで使用する場合は、月の最終日を表します。 「曜日」フィールドのみで使用する場合は、土曜日(SAT)の週の最終日を表します。 「曜日」フィールドと別の値を組み合わせて使用する場合は、その月のタイプの最終日を表します。 例えば、「曜日」フィールドに5Lを入れると、月の最後の金曜日が​ のみ ​になります。
W
この値は、指定された日に最も近い曜日を指定するために使用されます。 例えば、18Wを「月の日」フィールドに入れ、その月の18日が土曜日の場合、最も近い平日である17日の金曜日にトリガーします。 その月の18日が日曜日であれば、最も近い平日である19日の月曜日にトリガーするでしょう。 「月の日」フィールドに1Wを入力し、最も近い曜日が前月である場合、イベントは​ 現在 ​か月の最も近い曜日にトリガーされます。

さらに、LWを組み合わせてLWを作成できます。これにより、月の最後の曜日が指定されます。
#
この値は、月の曜日を指定するために使用されます。 #の前に配置された値は曜日を表し、#の後に配置された値はその月のどの出現を表します。 例えば、1#3と入力すると、月の第3日曜日にトリガーします。 X#5を入れた場合、その月のその曜日に5回目の発生がない場合、イベントは​ not ​がトリガーされます。 例えば、1#5を入力し、その月に第5日曜日がない場合、イベントは​not トリガーされます。

次の表は、cron式の文字列の例を示し、その意味を説明しています。

説明
0 0 13 * * ?
イベントは毎日午後1時に開催されます。
0 30 9 * * ? 2022
このイベントは、2022年の9:30AMに毎日開催されます。
0 * 18 * * ?
このイベントは毎分開始され、午後6時から毎日6:59PMに終了します。
0 0/10 17 * * ?
このイベントは10分ごとに開始され、毎日午後5時から午後6時に終了します。
0 13,38 5 ? 6 WED
このイベントは、6月の毎週水曜日に5:13AMと5:38AMに開催されます。
0 30 12 ? * 4#3
このイベントは、毎月第3水曜日の12:30PMに開催されます。
0 30 12 ? * 6L
イベントは、毎月最終金曜日の12:30PMに開始されます。
0 45 11 ? * MON-THU
イベントは、毎週月曜日、火曜日、水曜日、木曜日に11:45AMに開催されます。
recommendation-more-help
experience-platform-help-segmentation