跳到主要内容
版本:Next

Http-Asana

Asana 源连接器

描述​

从 Asana REST API (GET /tasks) 读取单个项目的任务。基于 connector-http-base 构建。仅支持批处理模式。

主要特性​

  • 批处理
  • 流处理
  • 精确一次
  • 列投影
  • 并行度

选项​

名称类型是否必填默认值描述
api_keyString是-Asana 个人访问令牌(原始令牌,不含 Bearer 前缀)。需要 tasks:read 权限。
project_gidString是-要读取其任务的项目。
modified_sinceString否-可选的 ISO 8601 时间戳,例如 2026-10-01T00:00:00Z。
base_urlString否https://app.asana.com/api/1.0Asana REST API 基础 URL。
retryInt否3HTTP 429 和 5xx 错误的最大重试次数。
retry_backoff_multiplier_msInt否100退避乘数(毫秒)。
retry_backoff_max_msInt否10000最大退避时间(毫秒)。

api_key​

Asana 个人访问令牌(原始令牌,不含 Bearer 前缀)。需要 tasks:read 权限。

project_gid​

要读取其任务的项目。

modified_since​

可选的 ISO 8601 时间戳,例如 2026-10-01T00:00:00Z。当任务自身的属性或关联发生变化时,Asana 会将其视为修改,但仅子任务发生变化时不计入。连接器在运行之间不保留状态。

retry​

HTTP 429 和 5xx(以及基础客户端中的 IOExceptions)的最大重试次数。退避时间从 retry_backoff_multiplier_ms 开始翻倍,最高可达 retry_backoff_max_ms。

输出列​

所有列均为 STRING 类型:gid、name、completed、completed_at、created_at、modified_at、due_on、assignee_gid、assignee_name、permalink_url。 completed_at、due_on 以及负责人列可以为 null。

示例​

env {
execution.parallelism = 1
job.mode = BATCH
}

source {
Asana {
api_key = "<PAT>"
project_gid = "1200000000000000"
modified_since = "2026-10-01T00:00:00Z"
plugin_output = "asana_tasks"
}
}

sink {
Console {
plugin_input = "asana_tasks"
}
}

注意事项​

每次运行都从第一页开始读取项目。发生故障后,重启的任务会从头重新读取,并可能发出已经发送过的行;在运行期间编辑的任务也可能会出现两次。每一行都包含任务 gid,这可以协助幂等的下游 Sink 进行去重或更新(upsert),但连接器不提供送达保证。速率限制处理仅采用有界退避机制;不遵循 Retry-After。

ChangeCommitVersion
[Feature][connector-http-asana] Add Asana source connectorhttps://github.com/apache/seatunneldev