The documentation you are viewing is for Dapr v1.5 which is an older version of Dapr. For up-to-date documentation, see the latest version.
PostgrSQL binding spec
配置
要设置与 PostgreSQL相关的 绑定,需要创建类型 bindings.postgres
的组件。 请参阅本指南,了解如何创建和应用绑定配置。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: bindings.postgres
version: v1
metadata:
- name: url # Required
value: <CONNECTION_STRING>
Warning
以上示例将密钥明文存储, 更推荐的方式是使用 Secret 组件, 这里。元数据字段规范
字段 | 必填 | 绑定支持 | 详情 | 示例 |
---|---|---|---|---|
url | Y | 输出 | Postgres连接字符串的写法,请参阅此处 | "user=dapr password=secret host=dapr.example.com port=5432 dbname=dapr sslmode=verify-ca" |
URL格式
The PostgreSQL binding uses pgx connection pool internally so the url
parameter can be any valid connection string, either in a DSN
or URL
format:
Example DSN
user=dapr password=secret host=dapr.example.com port=5432 dbname=dapr sslmode=verify-ca
Example URL
postgres://dapr:secret@dapr.example.com:5432/dapr?sslmode=verify-ca
Both methods also support connection pool configuration variables:
pool_min_conns
: integer 0 or greaterpool_max_conns
: integer greater than 0pool_max_conn_lifetime
: duration stringpool_max_conn_idle_time
: duration stringpool_health_check_period
: duration string
绑定支持
字段名为 ttlInSeconds
。
exec
query
close
exec
exec
操作可用于 DDL 操作(如表创建),以及 INSERT
、 UPDATE
、 DELETE
仅返回元数据的操作(例如受影响的行数)。
请求
{
"operation": "exec",
"metadata": {
"sql": "INSERT INTO foo (id, c1, ts) VALUES (1, 'demo', '2020-09-24T11:45:05Z07:00')"
}
}
响应
{
"metadata": {
"operation": "exec",
"duration": "294µs",
"start-time": "2020-09-24T11:13:46.405097Z",
"end-time": "2020-09-24T11:13:46.414519Z",
"rows-affected": "1",
"sql": "INSERT INTO foo (id, c1, ts) VALUES (1, 'demo', '2020-09-24T11:45:05Z07:00')"
}
}
query
query
操作用于 SELECT
语句,该语句以行值数组的形式返回元数据和数据。
请求
{
"operation": "query",
"metadata": {
"sql": "SELECT * FROM foo WHERE id < 3"
}
}
响应
{
"metadata": {
"operation": "query",
"duration": "432µs",
"start-time": "2020-09-24T11:13:46.405097Z",
"end-time": "2020-09-24T11:13:46.420566Z",
"sql": "SELECT * FROM foo WHERE id < 3"
},
"data": "[
[0,\"test-0\",\"2020-09-24T04:13:46Z\"],
[1,\"test-1\",\"2020-09-24T04:13:46Z\"],
[2,\"test-2\",\"2020-09-24T04:13:46Z\"]
]"
}
close
最后, close
操作可用于显式关闭数据库连接并将其返回到池中。 此操作没有任何响应。
请求
{
"operation": "close"
}
Note, the PostgreSql binding itself doesn’t prevent SQL injection, like with any database application, validate the input before executing query.
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.