发布事件到 PostgreSQL
MinIO 支持发布存储桶通知事件PostgreSQLMinIO 支持 PostgreSQL 9.5 及更高版本仅.
为 MinIO 部署添加 PostgreSQL 端点
以下过程添加一个新的 PostgreSQL 服务端点以支持存储桶通知在 MinIO 部署中。
前提条件
PostgreSQL 9.5 and later
MinIO 依赖 PostgreSQL 9.5 引入的功能。
MinIOmc命令行工具
1) 将 PostgreSQL 端点添加到 MinIO
您可以使用环境变量配置新的 PostgreSQL 服务端点or通过设置运行时配置设置。
MinIO支持使用PostgreSQL服务端点和相关配置设置进行指定环境变量. Theminio server进程将在下次启动时应用指定的设置。
以下示例代码设置全部environment variables 与配置 PostgreSQL 服务端点相关。最低必需variables are:
export MINIO_NOTIFY_POSTGRES_ENABLE_<IDENTIFIER>="on"
export MINIO_NOTIFY_POSTGRES_CONNECTION_STRING_<IDENTIFIER>="host=postgresql-endpoint.example.net port=4222"
export MINIO_NOTIFY_POSTGRES_TABLE_<IDENTIFIER>="minioevents"
export MINIO_NOTIFY_POSTGRES_FORMAT_<IDENTIFIER>="namespace|access"
export MINIO_NOTIFY_POSTGRES_MAX_OPEN_CONNECTIONS_<IDENTIFIER>="2"
export MINIO_NOTIFY_POSTGRES_QUEUE_DIR_<IDENTIFIER>="/opt/minio/events"
export MINIO_NOTIFY_POSTGRES_QUEUE_LIMIT_<IDENTIFIER>="100000"
export MINIO_NOTIFY_POSTGRES_COMMENT_<IDENTIFIER>="PostgreSQL Notification Event Logging for MinIO"
替换
<IDENTIFIER>使用一个唯一的描述性字符串来标识 PostgreSQL 服务端点。使用相同的<IDENTIFIER>所有与新目标服务端点相关的环境变量的值。 以下示例假设标识符为PRIMARY.如果指定的
<IDENTIFIER>匹配 MinIO 部署上现有的 PostgreSQL 服务端点,新的设置覆盖该端点的任何现有设置。使用mc admin config get notify_postgres审查 MinIO 部署中当前配置的 PostgreSQL 端点。替换
<ENDPOINT>随着PostgreSQL 连接字符串for PostgreSQL service endpoint。MinIO 支持key=value连接字符串的格式。例如:"host=https://postgresql.example.com port=5432 ..."有关支持的 PostgreSQL 连接字符串参数的更完整文档,请参阅PostgreSQL 连接字符串.
看PostgreSQL Service for Bucket Notifications有关每个环境变量的完整文档。
MinIO 支持在运行中添加或更新 PostgreSQL 端点minio server使用该过程mc admin config set命令
和notify_postgres配置键。您必须重启minio server应用任何新的或更新的配置设置的过程。
以下示例代码设置全部与配置 PostgreSQL 服务端点相关的设置。最低必需设置是:
mc admin config set ALIAS/ notify_postgres:IDENTIFIER \
connection_string="ENDPOINT" \
table="<string>" \
format="<string>" \
max_open_connections="<string>" \
queue_dir="<string>" \
queue_limit="<string>" \
comment="<string>"
替换
IDENTIFIER使用唯一的描述性字符串来标识 PostgreSQL 服务端点。本过程中的以下示例 假设标识符为PRIMARY.如果指定的
IDENTIFIER匹配 MinIO 部署上现有的 PostgreSQL 服务端点,新的设置覆盖该端点的任何现有设置。使用mc admin config get notify_postgres审查 MinIO 部署中当前配置的 PostgreSQL 端点。替换
<ENDPOINT>随着PostgreSQL URI 连接字符串PostgreSQL 服务端点。MinIO 支持key=valuePostgreSQL 连接字符串的格式。例如:"host=https://postgresql.example.com port=5432 ..."有关支持的 PostgreSQL 连接字符串参数的更完整文档,请参阅PostgreSQL 连接字符串.
看PostgreSQL 存储桶通知配置设置有关每个设置的完整文档。
1) 重启 MinIO 部署
您必须重启 MinIO 部署以使配置更改生效。
使用mc admin service restart重启部署的命令。
mc admin service restart ALIAS
替换ALIAS随着别名部署的重新启动。
Theminio server进程在启动时会为每个已配置的 PostgreSQL 目标打印一行信息,类似于以下内容:
SQS ARNs: arn:minio:sqs::primary:postgresql
在配置存储桶通知并将关联的 PostgreSQL 部署设为目标时,必须指定 ARN 资源。
识别您的存储桶通知的ARN
你定义了<IDENTIFIER>在先前创建端点时分配给您的存储桶通知的目标ARN。
以下步骤返回在部署上配置的ARN。
通过查找先前创建的ARN来识别它。<IDENTIFIER>您指定的。
审查 JSON 输出
复制并运行以下命令,将
ALIAS随着别名部署的。mc admin info --json ALIAS
在 JSON 输出中,查找键
info.sqsARN.您需要的ARN是与该键匹配的值
<IDENTIFIER>您指定的。例如,
arn:minio:sqs::primary:postgresql.
使用 jq 解析 JSON 获取值
3) 使用 PostgreSQL 端点作为目标配置存储桶通知
使用mc event add添加新存储桶通知事件的命令,将已配置的 PostgreSQL 服务设为目标:
mc event add ALIAS/BUCKET arn:minio:sqs::primary:postgresql \
--event EVENTS
使用mc event ls要查看为给定通知目标配置的所有存储桶事件:
mc event ls ALIAS/BUCKET arn:minio:sqs::primary:postgresql
4) 验证已配置的事件
对您配置了新事件的存储桶执行操作,并
检查 PostgreSQL 服务中的通知数据。所需操作
取决于您配置的events在配置存储桶通知时已指定。
例如,如果存储桶通知配置包含s3:ObjectCreated:Put事件,您可以使用mc cp在存储桶中创建新对象并触发通知的命令。
mc cp ~/data/new-object.txt ALIAS/BUCKET
更新 MinIO 部署中的 PostgreSQL 端点
以下过程更新现有的 PostgreSQL 服务端点以支持存储桶通知在 MinIO 部署中。
前提条件
PostgreSQL 9.5 and later
MinIO 依赖 PostgreSQL 9.5 引入的功能。
MinIOmc命令行工具
1) 列出部署中已配置的PostgreSQL端点
使用mc admin config get列出部署中当前配置的 PostgreSQL 服务端点的命令:
mc admin config get ALIAS/ notify_postgres
替换ALIAS随着别名MinIO 部署的。
命令输出类似于以下内容:
notify_postgres:primary queue_dir="" connection_string="postgresql://" queue_limit="0" table="" format="namespace"
notify_postgres:secondary queue_dir="" connection_string="" queue_limit="0" table="" format="namespace"
Thenotify_postgreskey 是用于配置PostgreSQL 通知设置. Theconnection_stringkey 指定
给定 PostgreSQL 服务端点的notify_postgreskey. Thenotify_postgres:<IDENTIFIER>suffix 描述了该 PostgreSQL 服务端点的唯一标识符。
记下您想要更新的 PostgreSQL 服务端点的标识符,以便进行下一步操作。
2) 更新 PostgreSQL 端点
使用mc admin config set设置 PostgreSQL 服务端点新配置的命令:
mc admin config set ALIAS/ notify_postgres:IDENTIFIER \
connection_string="ENDPOINT" \
table="<string>" \
format="<string>" \
max_open_connections="<string>" \
queue_dir="<string>" \
queue_limit="<string>" \
comment="<string>"
以下配置设置是最小值PostgreSQL 服务端点所需信息:
所有其他配置设置都是可选的. 查看PostgreSQL 通知设置有关完整的 PostgreSQL 配置设置列表,请参阅相关文档。
3) 重启 MinIO 部署
您必须重启 MinIO 部署以使配置更改生效。
使用mc admin service restart重启部署的命令。
mc admin service restart ALIAS
替换ALIAS随着别名部署的重新启动。
Theminio server进程在启动时会为每个已配置的 PostgreSQL 目标打印一行信息,类似于以下内容:
SQS ARNs: arn:minio:sqs::primary:postgresql
4) 验证更改
对配置了事件通知的存储桶执行操作,使用更新后的
PostgreSQL 服务端点,并检查 PostgreSQL 服务中的通知数据。所需
操作取决于具体events在配置存储桶通知时已指定。
例如,如果存储桶通知配置包含s3:ObjectCreated:Put事件,您可以使用mc cp在存储桶中创建新对象并触发通知的命令。
mc cp ~/data/new-object.txt ALIAS/BUCKET