{
ProcessInstances {
id
processId
state
parentProcessInstanceId
rootProcessId
rootProcessInstanceId
variables
nodes {
id
name
type
}
}
}
数据索引服务是一个专用的支持服务,用于存储与工作流实例及其关联作业相关的数据。此服务提供一个 GraphQL 端点,允许用户查询该数据。
数据索引服务处理通过事件接收的数据,这些事件可能源于任何工作流或直接来自作业服务。
数据索引服务支持 Apache Kafka 或 Knative Eventing 以使用来自工作流的 CloudEvents 消息。它会索引并将这些事件数据存储在数据库中,使其可以通过 GraphQL 访问。这些事件提供了有关工作流执行的详细信息。数据索引服务对于 OpenShift Serverless Logic 的搜索、洞察和管理功能至关重要。
数据索引服务的主要功能如下:
灵活的数据结构
可分布式、云就绪的格式
通过 Apache Kafka、Knative 和 CloudEvents 与工作流进行基于消息的通信
强大的基于 GraphQL 的查询 API
当您使用 OpenShift Serverless Operator 部署工作流时,无需手动安装或配置数据索引服务。Operator 会自动管理每个工作流与之连接所需的所有必要配置。 |
要检索有关工作流实例和作业的数据,可以使用 GraphQL 查询。
您可以使用以下查询示例检索有关特定工作流实例的信息:
{
ProcessInstances {
id
processId
state
parentProcessInstanceId
rootProcessId
rootProcessInstanceId
variables
nodes {
id
name
type
}
}
}
您可以使用以下查询示例从特定作业实例检索数据:
{
Jobs {
id
status
priority
processId
processInstanceId
executionCounter
}
}
您可以使用where
参数过滤查询结果,允许基于工作流属性进行多种组合。
{
ProcessInstances(where: {state: {equal: ACTIVE}}) {
id
processId
processName
start
state
variables
}
}
{
ProcessInstances(where: {id: {equal: "d43a56b6-fb11-4066-b689-d70386b9a375"}}) {
id
processId
processName
start
state
variables
}
}
默认情况下,过滤器使用 AND 运算符组合。您可以通过使用 AND 或 OR 运算符组合过滤器来修改此行为。
{
ProcessInstances(where: {or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}) {
id
processId
processName
start
end
state
}
}
{
ProcessInstances(where: {and: {processId: {equal: "travels"}, or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}}) {
id
processId
processName
start
end
state
}
}
根据属性类型,您可以使用以下可用的运算符:
属性类型 | 可用运算符 |
---|---|
字符串数组 |
|
字符串 |
|
ID |
|
布尔值 |
|
数值 |
|
日期 |
|