在Postgres的Aurora Serverless实例上执行创建功能失败

时间:2019-12-15 19:27:11

标签: postgresql amazon-web-services postgis amazon-rds-aurora aws-aurora-serverless

我正在尝试使用AWS(found here)提供的说明在Aurora无服务器Postgres 10.7实例上启用PostGIS扩展,并通过RDS控制台中的查询编辑器执行步骤。使用这些相同的指令,我能够在单独的常规Aurora RDS Postgres实例上成功执行所有命令。

在“第4步:将对象的所有权转让给rds_superuser角色”中,我遇到此错误:

enter image description here

如果您尝试使用以下命令从AWS cli执行命令,这也会失败:

aws rds-data execute-statement --resource-arn "<<RESOURCE_ARN>>" \
--database "postgres" --secret-arn "<<SECRET_ARN>>" \
--sql "CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$;"

如何通过RDS查询编辑器或AWS cli执行这些功能?

1 个答案:

答案 0 :(得分:0)

RDS查询编辑器和AWS CLI都需要转义'$'字符。只需用'\ $'转义'$'的所有实例即可。

aws rds-data execute-statement --resource-arn "<<RESOURCE_ARN>>" \
--database "postgres" --secret-arn "<<SECRET_ARN>>" \
--sql "CREATE FUNCTION exec(text) returns text language plpgsql volatile AS \$f\$ BEGIN EXECUTE \$1; RETURN \$1; END; \$f\$;"