从在 Amazon RDS Postgres 实例上运行的 plpgsql 脚本中,是否可以获取有关实例配置的信息?如何检索实例的数据库实例 ID、ARN(Amazon 资源名称)或终端节点?
我想将它用作一些 plpgsql-script 中的检查,以 100% 确保它不会在生产数据库上执行它的操作。
从在 Amazon RDS Postgres 实例上运行的 plpgsql 脚本中,是否可以获取有关实例配置的信息?如何检索实例的数据库实例 ID、ARN(Amazon 资源名称)或终端节点?
我想将它用作一些 plpgsql-script 中的检查,以 100% 确保它不会在生产数据库上执行它的操作。
与EC2 实例和 ECS 任务(基于 EC2 /基于Fargate)不同,没有您可以查询的元数据服务来为您提供这些详细信息。您将能够获得的最好结果是来自可能提供主机名的系统级视图。但是,我会谨慎依赖这些信息,因为在完全托管的环境中,故障转移和实例替换在 99% 的情况下会自动发生,因此您查询的值下次可能会有所不同,并且可能有也可能没有标准命名法.
获取该信息的唯一方法是调用您正在查找的集群和/或实例的 RDS API 端点。
如果您通过将连接到实例的外部进程运行 sql,则可以将这些检查作为连接和运行脚本的先决条件。但是,如果您通过直接连接到实例来手动运行脚本并希望阻止“oops”操作,则将由执行该操作的人来检查他们的工作。