使用机密在 AWS 中连接时出现 PostgREST 错误

PostgREST error on connecting in AWS using secrets

目前正在 AWS 中部署 PostgREST。当我使用 Fargate 并在连接字符串的环境变量中硬编码类型时,机器运行起来就像一个魅力。 但是,我最近用秘密替换了这些值。在秘密中,我将整个字符串复制粘贴到值中,在环境变量中,我将源代码从 "Value" 设置为 "ValueFrom"。

所以现在的值为:

postgres://<myuser>:<mypass>@<amazon-rds-instance>:5432/<db>

当我直接在环境变量中使用这个连接字符串时,我可以轻松连接,所以我知道信息是正确的。

返回的日志出现以下错误:

{"details":"missing \"=\" after \"{\"postgrest_db_connection\":\"postgres://myuser:mypass@amazon-rds-instance:5432/db\"}\" in connection info string\n","code":"","message":"Database connection error"}

我还检查了字符串中没有需要转义的字符。我在这里可以缺少什么?

所以我想通了。不幸的是,这一行是:

It is only supported to inject the full contents of a secret as an environment variable. Specifying a specific JSON key or version is not supported at this time.

这意味着每当您在环境变量中使用机密作为 ValueFrom 设置时(使用 Fargate 时),整个机密的值都会被复制粘贴。

我使用 PostgREST 模式变量的秘密对此进行了测试。我找回了价值:

{'PGRST_SCHEMA_URL': 'public'}

虽然我期待它只是:

public

这也是配置出错的原因。谢谢大家的搜索。