Natknęliśmy się na ten sam problem i skontaktowaliśmy się z AWS, który potwierdził, że rzeczywiście jest to problem z narzędziem Edytor zapytań. Nie mają szacowanego czasu przybycia, kiedy problem zostanie naprawiony.
Rozwiązanie 1:Użyj psql
Dobrą wiadomością jest to, że będzie to działać z psql
. To jest fragment odpowiedzi e-maila:
$ 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
Dokumentacja, jak to skonfigurować:https://docs.aws .amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
Rozwiązanie 2:Użyj interfejsu API danych
Używamy już Data API do komunikacji z naszym klastrem, więc dla nas najprostszym rozwiązaniem jest użycie AWS CLI i istniejącego klucza bazy danych.
Możesz umieścić swoją definicję funkcji w pliku function.sql
plik:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$
BEGIN
RETURN i + 1;
END;
$$ LANGUAGE plpgsql;
Następnie uruchom go w bazie danych za pomocą:
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
Mam nadzieję, że jest to przydatne, powodzenia!