コネクタスケジューリングAPIの更新

この機能はベータ版であり、変更される可能性があります。設計とコードは公式GA機能よりも成熟しておらず、保証なしでそのまま提供されています。ベータ機能は公式GA機能のサポートSLAの対象外です。

コネクタのscheduling設定を更新します。

コネクタAPIを始めるには、チュートリアルを確認してください。

リクエスト

PUT _connector/<connector_id>/_scheduling

前提条件

  • 自己管理型コネクタを使用してデータを同期するには、独自のインフラストラクチャにElasticコネクタサービスをデプロイする必要があります。このサービスは、ネイティブコネクタ用にElastic Cloud上で自動的に実行されます。
  • connector_idパラメータは、既存のコネクタを参照する必要があります。

パスパラメータ

  • <connector_id>
  • (必須、文字列)

リクエストボディ

  • scheduling
  • (必須、オブジェクト) コネクタのスケジューリング設定。この設定は、コネクタの同期操作の頻度を決定します。

スケジューリング設定には、各ScheduleConfigオブジェクトとして表される以下の属性が含まれます。schedulingオブジェクトにすべてのスケジュールタイプが含まれていない場合、提供されたもののみが更新され、他のものは変更されません。

  • access_control (オプション、ScheduleConfigオブジェクト) コネクタのアクセス制御設定を同期するためのスケジュールを定義します。
  • full (オプション、ScheduleConfigオブジェクト) フルコンテンツ同期のスケジュールを定義します。
  • incremental (オプション、ScheduleConfigオブジェクト) 増分コンテンツ同期のスケジュールを定義します。

ScheduleConfigオブジェクトには、以下のサブ属性が含まれます:

  • enabled (必須、ブール値) スケジューリングを有効または無効にするフラグ。
  • interval (必須、文字列) 同期スケジュールを表すCRON式。この式は、同期操作が発生する頻度を定義します。有効なCRON形式で提供する必要があります。

レスポンスコード

  • 200
  • コネクタschedulingフィールドが正常に更新されました。
  • 400
  • connector_idが提供されていないか、リクエストペイロードが不正です。
  • 404 (リソースが不足しています)
  • connector_idに一致するコネクタが見つかりませんでした。

以下の例は、ID my-connectorのコネクタのschedulingプロパティを更新します:

Python

  1. resp = client.connector.update_scheduling(
  2. connector_id="my-connector",
  3. scheduling={
  4. "access_control": {
  5. "enabled": True,
  6. "interval": "0 10 0 * * ?"
  7. },
  8. "full": {
  9. "enabled": True,
  10. "interval": "0 20 0 * * ?"
  11. },
  12. "incremental": {
  13. "enabled": False,
  14. "interval": "0 30 0 * * ?"
  15. }
  16. },
  17. )
  18. print(resp)

Ruby

  1. response = client.connector.update_scheduling(
  2. connector_id: 'my-connector',
  3. body: {
  4. scheduling: {
  5. access_control: {
  6. enabled: true,
  7. interval: '0 10 0 * * ?'
  8. },
  9. full: {
  10. enabled: true,
  11. interval: '0 20 0 * * ?'
  12. },
  13. incremental: {
  14. enabled: false,
  15. interval: '0 30 0 * * ?'
  16. }
  17. }
  18. }
  19. )
  20. puts response

Js

  1. const response = await client.connector.updateScheduling({
  2. connector_id: "my-connector",
  3. scheduling: {
  4. access_control: {
  5. enabled: true,
  6. interval: "0 10 0 * * ?",
  7. },
  8. full: {
  9. enabled: true,
  10. interval: "0 20 0 * * ?",
  11. },
  12. incremental: {
  13. enabled: false,
  14. interval: "0 30 0 * * ?",
  15. },
  16. },
  17. });
  18. console.log(response);

コンソール

  1. PUT _connector/my-connector/_scheduling
  2. {
  3. "scheduling": {
  4. "access_control": {
  5. "enabled": true,
  6. "interval": "0 10 0 * * ?"
  7. },
  8. "full": {
  9. "enabled": true,
  10. "interval": "0 20 0 * * ?"
  11. },
  12. "incremental": {
  13. "enabled": false,
  14. "interval": "0 30 0 * * ?"
  15. }
  16. }
  17. }

コンソール-結果

  1. {
  2. "result": "updated"
  3. }

以下の例は、full同期スケジュールのみを更新し、他のスケジュールタイプは変更されないことを示しています:

Python

  1. resp = client.connector.update_scheduling(
  2. connector_id="my-connector",
  3. scheduling={
  4. "full": {
  5. "enabled": True,
  6. "interval": "0 10 0 * * ?"
  7. }
  8. },
  9. )
  10. print(resp)

Js

  1. const response = await client.connector.updateScheduling({
  2. connector_id: "my-connector",
  3. scheduling: {
  4. full: {
  5. enabled: true,
  6. interval: "0 10 0 * * ?",
  7. },
  8. },
  9. });
  10. console.log(response);

コンソール

  1. PUT _connector/my-connector/_scheduling
  2. {
  3. "scheduling": {
  4. "full": {
  5. "enabled": true,
  6. "interval": "0 10 0 * * ?"
  7. }
  8. }
  9. }

コンソール-結果

  1. {
  2. "result": "updated"
  3. }