# HTTP Push 数据源
stream source
scan table source
eKuiper 提供了内置的 HTTP 源。此时,eKuiper 将作为一个 HTTP 服务器来接收 HTTP 客户端的消息。所有的 HTTP 推送源共用单一的全局 HTTP 数据服务器。每个源可以有自己的 URL,这样就可以支持多个端点。
eKuiper 连接器可以通过[环境变量](../../../configuration/configuration.md#environment-variable-syntax)、[REST API](../../../api/restapi/configKey.md) 或配置文件进行配置,本节将介绍配置文件的使用方法。
## 服务器配置
服务器配置在 `etc/kuiper.yaml` 中的 `source` 部分。
```yaml
source:
## Configurations for the global http data server for httppush source
# HTTP data service ip
httpServerIp: 0.0.0.0
# HTTP data service port
httpServerPort: 10081
# httpServerTls:
# certfile: /var/https-server.crt
# keyfile: /var/https-server.key
```
用户可以指定以下属性:
- `httpServerIp`:用于绑定 HTTP 数据服务器的 IP。
- `httpServerPort`:用于绑定 HTTP 数据服务器的端口。
- `httpServerTls`:HTTP 服务器 TLS 的配置。
当任何需要 HTTP Push 源的规则被启动时,全局服务器的设置会初始化。所有关联的规则被关闭后,它就会终止。
## 数据源配置
HTTP Push 源配置文件位于 `etc/sources/httppush.yaml`,其中:
- default:对应全局连接配置。
- 自定义部分:对于需要自定义某些连接参数的场景,该部分的配置将覆盖全局连接配置。
以下示例包括一个全局配置和自定义配置 `application_conf`:
```yaml
#Global httppush configurations
default:
# the request method to listen on
method: "POST"
#Override the global configurations
application_conf: #Conf_key
server: "PUT"
```
::: tip
注意:目前只有 `method` 属性可用于配置要监听的 HTTP 方法。
:::
此外,每个[流](../../streams/overview.md)可以配置自己的 URL 端点和 HTTP 请求方法。端点属性被映射到创建流语句中的 `datasource` 属性。
## 创建流数据源
完成连接器的配置后,后续可通过创建流将其与 eKuiper 规则集成。HTTP Push 源连接器可以作为[流式](../../streams/overview.md)或[扫描表类数据源](../../tables/scan.md)使用,本节将以流类型源为例进行说明。
您可通过 REST API 或 CLI 工具在 eKuiper 中创建 HTTP Push 数据源。
### 通过 REST API 创建
REST API 为 eKuiper 提供了一种可编程的交互方式,适用于自动化或需要将 eKuiper 集成到其他系统中的场景。
**示例**
```sql
CREATE STREAM httpDemo() WITH (FORMAT="json", TYPE="httppush")
```
**使用自定义配置**
您可以使用 `endpoint` 属性,该属性对应于流创建语句中的
创建流时,您可通过 `datasource` 配置项对应 `endpoint` 属性,如下所示:
**示例**
```sql
CREATE STREAM httpDemo() WITH (DATASOURCE="/api/data", FORMAT="json", TYPE="httppush")
```
在以上示例中,我们将源绑定到 `/api/data` 端点。因此,它将监听 `http://localhost:10081/api/data`。
详细操作步骤及命令解释,可参考 [通过 REST API 进行流管理](../../../api/restapi/streams.md)。
### 通过 CLI 创建
用户也可以通过命令行界面(CLI)直接访问 eKuiper。
1. 进入 eKuiper `bin` 目录:
```bash
cd path_to_eKuiper_directory/bin
```
2. 使用 `create` 命令创建规则,指定 HTTP Push 数据源,如:
```bash
bin/kuiper CREATE STREAM demo'() with(format="json", datasource="/api/data type="httppush")'
```
详细操作步骤及命令解释,可参考 [通过 CLI 进行流管理](../../../api/cli/streams.md)。