更新连接器调度 API

编辑

此功能处于 beta 测试阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,按“原样”提供,不提供任何保证。Beta 功能不受正式 GA 功能的支持 SLA 约束。

更新连接器的 scheduling 配置。

要开始使用连接器 API,请查看我们的教程

请求

编辑

PUT _connector/<connector_id>/_scheduling

先决条件

编辑
  • 要使用自托管连接器同步数据,您需要在自己的基础设施上部署Elastic 连接器服务。对于 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 属性

resp = client.connector.update_scheduling(
    connector_id="my-connector",
    scheduling={
        "access_control": {
            "enabled": True,
            "interval": "0 10 0 * * ?"
        },
        "full": {
            "enabled": True,
            "interval": "0 20 0 * * ?"
        },
        "incremental": {
            "enabled": False,
            "interval": "0 30 0 * * ?"
        }
    },
)
print(resp)
response = client.connector.update_scheduling(
  connector_id: 'my-connector',
  body: {
    scheduling: {
      access_control: {
        enabled: true,
        interval: '0 10 0 * * ?'
      },
      full: {
        enabled: true,
        interval: '0 20 0 * * ?'
      },
      incremental: {
        enabled: false,
        interval: '0 30 0 * * ?'
      }
    }
  }
)
puts response
const response = await client.connector.updateScheduling({
  connector_id: "my-connector",
  scheduling: {
    access_control: {
      enabled: true,
      interval: "0 10 0 * * ?",
    },
    full: {
      enabled: true,
      interval: "0 20 0 * * ?",
    },
    incremental: {
      enabled: false,
      interval: "0 30 0 * * ?",
    },
  },
});
console.log(response);
PUT _connector/my-connector/_scheduling
{
    "scheduling": {
        "access_control": {
            "enabled": true,
            "interval": "0 10 0 * * ?"
        },
        "full": {
            "enabled": true,
            "interval": "0 20 0 * * ?"
        },
        "incremental": {
            "enabled": false,
            "interval": "0 30 0 * * ?"
        }
    }
}
{
    "result": "updated"
}

以下示例仅更新 full 同步计划,其他计划类型保持不变

resp = client.connector.update_scheduling(
    connector_id="my-connector",
    scheduling={
        "full": {
            "enabled": True,
            "interval": "0 10 0 * * ?"
        }
    },
)
print(resp)
const response = await client.connector.updateScheduling({
  connector_id: "my-connector",
  scheduling: {
    full: {
      enabled: true,
      interval: "0 10 0 * * ?",
    },
  },
});
console.log(response);
PUT _connector/my-connector/_scheduling
{
    "scheduling": {
        "full": {
            "enabled": true,
            "interval": "0 10 0 * * ?"
        }
    }
}
{
    "result": "updated"
}