Vi støder på det samme problem og kom i kontakt med AWS, som bekræftede, at det faktisk er et problem med Query Editor-værktøjet. De har ikke en forventet ankomsttid på, hvornår problemet er løst.
Løsning 1:Brug psql
Den gode nyhed er, at dette vil fungere med psql
. Dette er et uddrag fra deres svarmail:
$ psql -h database-2.cluster-xx.us-west-2.rds.amazonaws.com -d postgres -U postgres
postgres=> CREATE OR REPLACE FUNCTION trigger_set_updated_at() RETURNS TRIGGER AS $$
postgres$> BEGIN NEW.updated_at = NOW();
postgres$> RETURN NEW;END;$$
postgres-> LANGUAGE plpgsql;
CREATE FUNCTION
Dokumentation om, hvordan du opsætter det:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Løsning 2:Brug Data API
Vi bruger allerede Data API at kommunikere med vores klynge, så for os er den enkleste løsning faktisk at bruge AWS CLI og den eksisterende databasehemmelighed.
Du kan sætte din funktionsdefinition i en function.sql
fil:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Udfør det derefter på databasen med:
cat function.sql | xargs -0 aws rds-data execute-statement \
--resource-arn arn:aws:rds:eu-west-1:xxx:cluster:cluster-name \
--secret-arn arn:aws:secretsmanager:eu-west-1:xxx:secret:secret-name-xxx \
--database "database_name" \
--sql
Forhåbentlig er dette nyttigt, held og lykke!