スケジュールエンドポイント
スケジュールは、バッチセグメント化ジョブを 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?start={START}
GET /config/schedules?limit={LIMIT}
{START}
{LIMIT}
リクエスト
以下のリクエストは、組織内に投稿された最新の 10 件のスケジュールを取得します。
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 として返されます。
{
"_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": {}
}
}
_page.totalCount
_page.pageSize
children.name
children.type
children.properties
children.properties.segments
["*"]
を使用すると、すべてのセグメントが確実に含まれます。children.schedule
children.state
新しいスケジュールの作成 create
/config/schedules
エンドポイントに POST リクエストをおこなうことで、新しいスケジュールを作成できます。
API 形式
POST /config/schedules
リクエスト
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"
}'
name
type
properties
properties.segments
type
が「batch_segmentation」に等しい場合は必須です。["*"]
を使用すると、すべてのセグメントが確実に含まれます。schedule
この文字列が指定されていない場合、システムで生成されたスケジュールが自動的に生成されます。
state
応答
正常な応答では、新しく作成したスケジュールの詳細と共に HTTP ステータス 200 が返されます。
{
"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
値。リクエスト
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 が返されます。
{
"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
}
name
type
batch_segmentation
と export
の 2 つです。properties
properties.segments
["*"]
を使用すると、すべてのセグメントが確実に含まれます。schedule
state
active
と inactive
です。デフォルトでは、状態は inactive
に設定されています。特定のスケジュールの詳細を更新 update
/config/schedules
エンドポイントにPATCHリクエストを実行し、リクエストパスで更新しようとしているスケジュールの ID を指定することで、特定のスケジュールを更新できます。
PATCHリクエストでは、個々のスケジュールの state または cron スケジュールを更新できます。
スケジュール状態の更新 update-state
JSON Patch 操作を使用すると、スケジュールの状態を更新できます。 状態を更新するには、path
プロパティを /state
として宣言し、value
を active
または inactive
に設定します。 JSON パッチについて詳しくは、JSON パッチドキュメントを参照してください。
API 形式
PATCH /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
値。リクエスト
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"
}
]'
path
path
の値を「/state」に設定する必要があります。value
応答
正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。
Cron スケジュールを更新 update-schedule
JSON Patch 操作を使用すると、cron スケジュールを更新できます。 スケジュールを更新するには、path
プロパティを /schedule
として宣言し、value
を有効な cron スケジュールに設定します。 JSON パッチについて詳しくは、JSON パッチドキュメントを参照してください。 cron スケジュールについて詳しくは、cron 式形式に関する付録を参照してください。
API 形式
PATCH /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
値。リクエスト
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 * * ?"
}
]'
path
path
の値を /schedule
に設定する必要があります。value
応答
正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。
特定のスケジュールの削除
/config/schedules
エンドポイントにDELETEリクエストを実行し、リクエストパスで削除するスケジュールの ID を指定することで、特定のスケジュールの削除をリクエストできます。
API 形式
DELETE /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
値。リクエスト
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 番目のフィールドを含めることもできます。
, - * /
, - * /
, - * /
, - * ? / L W
, - * /
, - * ? / L #
, - * /
SUN
は sun
を使用することと同じです。使用できる特殊文字は、次の意味を表します。
*
*
を入力すると 毎 を意味します。?
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
を月の曜日フィールドに入力した場合、最も近い平日が先月の場合でも、イベントは 現在 月の最も近い平日にトリガーされます。さらに、
L
と W
を組み合わせて、その月の最終日を指定する LW
を作成できます。#
#
の前の値は曜日を表し、#
の後の値はその月のどの日かを表します。 例えば、1#3
を指定すると、イベントは月の第 3 日曜日にトリガーします。 なお、X#5
を入力し、その月の当該曜日の 5 回目の発生がない場合は、イベントが トリガーされない ことに注意してください。 例えば、1#5
を入力し、その月に 5 番目の日曜日がない場合、イベントは トリガーされません。例
次の表に、Cron 式の文字列の例と、それらの意味を示します。
0 0 13 * * ?
0 30 9 * * ? 2022
0 * 18 * * ?
0 0/10 17 * * ?
0 13,38 5 ? 6 WED
0 30 12 ? * 4#3
0 30 12 ? * 6L
0 45 11 ? * MON-THU