中文文档

PostgreSQL 通知设置

本页面文档了配置POSTGRES服务作为 Bucket Notifications 目标的设置。 有关使用这些设置的教程,请参阅 将事件发布至PostgreSQL

您可以通过定义以下内容来建立或修改设置:

  • 在启动或重新启动 MinIO 服务器之前,在宿主系统上定义一个 环境变量。 请参阅您的操作系统的文档,了解如何定义环境变量。

  • 使用 mc admin config set 命令来设置一个 配置项

  • 使用 MinIO控制台管理员 > 设置 页面来设置一个 配置项

如果您同时定义了环境变量和类似的配置设置,MinIO 将使用环境变量的值。

有些设置只有环境变量或配置设置,而不是两者都有。

重要

每个配置设置都控制着MinIO的基本行为和功能。 MinIO 强烈建议 在较低的环境中,如DEV或QA,测试配置更改,然后再将其应用到生产环境中。

多个 PostgreSQL 目标

您可以通过在顶级键后附加每个相关PostgreSQL设置集的唯一标识符 _ID 来指定多个PostgreSQL服务端点。 例如, 以下命令分别为两个不同的PostgreSQL服务端点设置为 PRIMARYSECONDARY

export MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_PRIMARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_PRIMARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_PRIMARY="namespace"

export MINIO_NOTIFY_POSTGRES_ENABLE_SECONDARY="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_SECONDARY="host=postgresql-endpoint.example.net port=4222..."
export MINIO_NOTIFY_POSTGRES_TABLE_SECONDARY="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_SECONDARY="namespace"
mc admin config set notify_postgres:primary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_postgres:secondary \
   connection_string="host=postgresql.example.com port=5432..."
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

在这些设置中,环境变量 MINIO_NOTIFY_POSTGRES_ENABLE_PRIMARY 表示它与 ID 为 PRIMARY 的 PostgreSQL 服务端点相关联。

设置

Enable

必需的

MINIO_NOTIFY_POSTGRES_ENABLE

on 指定为启用将桶通知发布到PostgreSQL服务端点的功能。

默认为 off

如果设置为 on ,则需要指定以下附加环境变量:

notify_postgres

用于定义与 MinIO 桶通知 一起使用的 PostgreSQL 服务端点的顶级配置键。

使用 mc admin config set 命令来设置或更新一个 PostgreSQL 服务端点。 以下参数对于每个目标都是 必需 的:

将其他可选参数指定为空格 ( " " ) 分隔的列表。

mc admin config set notify_postgres                            \
  connection_string="host=postgresql.example.com port=5432..." \
  table="minioevents"                                          \
  format="namespace"                                           \
  [ARGUMENT="VALUE"] ...

连接字符串

必需的

MINIO_NOTIFY_POSTGRES_CONNECTION_STRING
notify_postgres connection_string

指定 PostgreSQL 服务端点的 URI 连接字符串。 MinIO 支持 key=value 格式的 PostgreSQL 连接字符串。 例如:

"host=https://postgresql.example.com port=5432 ..."

有关支持PostgreSQL连接字符串参数的更完整文档,请参阅 PostgreSQL连接字符串文档

在 RELEASE.2023-05-27T05-56-19Z 版本发生变更: 在添加目标之前,MinIO会检查指定URL的健康状况(如果其能被解析并可以访问)。 如果现有目标离线,MinIO不再阻止添加新的通知目标。

Table

必需的

MINIO_NOTIFY_POSTGRES_TABLE
notify_postgres table

指定MinIO发布事件通知的PostgreSQL表名称。

Format

必需的

MINIO_NOTIFY_POSTGRES_FORMAT
notify_postgres format

指定写入PostgreSQL服务端点的事件数据的格式。 MinIO 支持以下值:

namespace

对于每个桶事件,MinIO都会创建一个JSON文档,其中文档ID是事件中的桶和对象名称,而实际事件则是文档体的一部分。 对那个对象的额外更新会修改该对象现有的表条目。 同样,删除对象也会删除相应的表条目。

access

对于每个桶事件,MinIO 会创建一个包含事件详情的JSON文档,并将其附加到具有由PostgreSQL生成的随机ID的表中。 对对象的额外更新会导致新的索引条目,而现有的条目保持未修改。

最大打开连接数

可选

MINIO_NOTIFY_POSTGRES_MAX_OPEN_CONNECTIONS
notify_postgres max_open_connections

指定向PostgreSQL数据库打开的最大连接数。

默认为 2

队列目录

可选

MINIO_NOTIFY_POSTGRES_QUEUE_DIR
notify_postgres queue_dir

指定目录路径以启用MinIO的持久化事件存储,例如 /opt/minio/events

当PostgreSQL服务器/代理离线时,MinIO将未投递的事件存储在指定的存储中,并在连接恢复时重新播放存储的事件。

队列限制

可选

MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT
notify_postgres queue_limit

指定未发送消息的最大限制。 默认为 100000

Comment

可选

MINIO_NOTIFY_POSTGRES_COMMENT
notify_postgres comment

为PostgreSQL配置指定一个注释。

Join Slack 商业支持购买咨询